Windows shell命令获取当前目录的完整path?
有没有一个Windows命令行命令,我可以用它来获取当前工作目录的完整path? 另外,如何将此path存储在batch file中使用的variables中?
如果直接使用shell,请使用cd
,如果要在batch file中使用它,则使用%cd%
(行为与environment var类似)。
您可以如下设置批处理/环境variables:
SET var=%cd% ECHO %var%
来自Windows 7 x64 cmd.exe的示例屏幕截图。
更新:如果您执行SET var = %cd%
而不是SET var=%cd%
,则会发生以下情况。 感谢jeb。
从batch file中捕获当前目录
引用set
命令( set /?
)的Windows帮助:
如果启用了命令扩展,那么有几个dynamic的 可以扩展但不显示的环境variables SET显示的variables列表。 这些variables值是 每次扩大variables的值时dynamic计算。 如果用户用这些名字中的一个显式地定义一个variables,那么 该定义将覆盖下面描述的dynamic定义: %CD% - 展开为当前目录string。 %DATE% - 使用与DATE命令相同的格式展开到当前date。 %TIME% - 使用与TIME命令相同的格式展开到当前时间。 %RANDOM% - 扩展为0到32767之间的随机十进制数。 %ERRORLEVEL% - 展开为当前的ERRORLEVEL值 %CMDEXTVERSION% - 扩展到当前的命令处理器扩展 版本号。 %CMDCMDLINE% - 展开到调用的原始命令行 命令处理器。
注意%CD% - expands to the current directory string.
部分。
在Unix上?
PWD
对于Windows我们可以使用
cd
和Linux
pwd
命令在那里。
对于Windows, cd
本身会显示当前的工作目录。
对于UNIX和workalike系统, pwd
将执行相同的任务。 你也可以在一些shell下使用$PWD
shellvariables。 我不确定Windows是否支持通过shellvariables获取当前工作目录。
这一直为我工作:
SET CurrentDir="%~dp0" ECHO The current file path this bat file is executing in is the following: ECHO %CurrentDir% Pause
基于后续问题(将数据存储在一个variables中)在chdir文章的评论中,我打赌他希望存储当前path以在更改目录后恢复它。
原来的用户应该看看“pushd”,这会改变目录,并把当前的目录压入一个可以用“popd”恢复的堆栈。 在任何现代的Windows cmd shell上,这是制作batch file的方法。
如果你真的需要抓取当前的path,那么现代的CMD shell也有一个%CD%variables,你可以很容易地将其放在另一个variables中作为参考。
在Windows中:
CHDIR显示当前目录的名称或更改当前目录。
在Linux中:
PWD显示当前目录的名称。
@for /f "usebackq" %%x in (`chdir`) do set var=%%x @echo "The currenct directory is: %var%"
但是, 当然 ,gmaran23的答案是更容易的答案。
在Windows命令提示符下, chdir
或cd
将在控制台中打印当前工作目录的完整path。 如果我们要复制path,那么我们可以使用: cd | clip
cd | clip
。
谢谢。
在Windows中inputcd
为工作当前path在Linux pwd
为当前工作path