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命令提示符下, chdircd将在控制台中打印当前工作目录的完整path。 如果我们要复制path,那么我们可以使用: cd | clip cd | clip

谢谢。

在Windows中inputcd为工作当前path在Linux pwd为当前工作path