309

是否有可用于获取当前工作目录的完整路径的 Windows 命令行命令?

另外,如何将此路径存储在批处理文件中使用的变量中?

4

14 回答 14

484

如果您直接使用cdshell,或者%cd%如果您想在批处理文件中使用它(它的行为类似于环境变量),则不带参数使用。

于 2009-03-03T19:05:28.947 回答
118

您可以按如下方式设置批处理/环境变量:

SET var=%cd%
ECHO %var%

来自 Windows 7 x64 cmd.exe 的示例屏幕截图。

在此处输入图像描述

更新:如果你做 aSET var = %cd%而不是SET var=%cd%,下面会发生什么。感谢杰布。

在此处输入图像描述

从批处理文件中捕获当前目录

于 2013-07-04T08:13:40.280 回答
55

set引用命令 ( )的 Windows 帮助set /?

如果启用了命令扩展,那么有几个动态的
可以扩展但不显示的环境变量
SET 显示的变量列表。这些变量值是
每次扩展变量的值时动态计算。
如果用户明确定义了具有这些名称之一的变量,则
该定义将覆盖下面描述的动态定义:

%CD% - 扩展为当前目录字符串。

%DATE% - 使用与 DATE 命令相同的格式扩展到当前日期。

%TIME% - 使用与 TIME 命令相同的格式扩展到当前时间。

%RANDOM% - 扩展为 0 到 32767 之间的随机十进制数。

%ERRORLEVEL% - 扩展为当前的 ERRORLEVEL 值

%CMDEXTVERSION% - 扩展到当前的命令处理器扩展
    版本号。

%CMDCMDLINE% - 展开到调用
    命令处理器。

注意%CD% - expands to the current directory string.部分。

于 2009-03-04T11:55:31.033 回答
30

在 Unix 上?

密码

于 2009-03-03T19:06:11.457 回答
27

这一直对我有用:

SET CurrentDir="%~dp0"

ECHO The current file path this bat file is executing in is the following:

ECHO %CurrentDir%

Pause
于 2013-03-03T00:29:45.693 回答
22

对于 Windows,我们可以使用

cd

对于 Linux

pwd

命令在那里。

于 2013-10-01T13:46:10.307 回答
10

在 Windows 上:

CHDIR 显示或更改当前目录的名称。

在 Linux 中:

PWD 显示当前目录的名称。

于 2015-08-17T17:01:34.617 回答
10

在下创建一个.bat文件System32,让我们将其命名copypath.bat为复制当前路径的命令可以是

echo %cd% | clip

说明:

%cd%会给你当前的路径

CLIP

Description:
    Redirects output of command line tools to the Windows clipboard.
    This text output can then be pasted into other programs.

Parameter List:
    /?                  Displays this help message.

Examples:
    DIR | CLIP          Places a copy of the current directory
                        listing into the Windows clipboard.

    CLIP < README.TXT   Places a copy of the text from readme.txt
                        on to the Windows clipboard.

现在copypath可以从任何地方获得。

于 2018-09-12T18:57:38.937 回答
9

对于 Windows,cd它本身会显示当前的工作目录。

对于 UNIX 和类似工作的系统,pwd将执行相同的任务。您还可以$PWD在某些 shell 下使用 shell 变量。我不确定 Windows 是否支持通过 shell 变量获取当前工作目录。

于 2009-03-03T19:10:20.760 回答
5

基于对 chdir 帖子的评论中的后续问题(将数据存储在变量中),我打赌他想存储当前路径以在更改目录后恢复它。

原始用户应该查看“pushd”,它会更改目录并将当前目录推送到可以使用“popd”恢复的堆栈上。在任何现代 Windows cmd shell 上,这是制作批处理文件的方式。

如果您真的需要获取当前路径,那么现代 cmd shell 也有一个 %CD% 变量,您可以轻松地将其塞入另一个变量中以供参考。

于 2009-03-03T19:23:37.623 回答
4

在 Windows 命令提示符下,chdircd将在控制台中打印当前工作目录的完整路径。

如果我们想复制路径,那么我们可以使用:cd | clip

于 2016-01-30T10:09:55.240 回答
3
@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%

但是,当然,gmaran23 的答案要容易得多。

于 2013-07-04T08:30:27.233 回答
0

作为可能的代码之一

    echo off
    for /f "usebackq tokens=* delims= " %%x in (`chdir`) do set var=%var% %%x
    echo The current directory is: "%var:~1%"
于 2020-05-24T10:12:41.660 回答
-2

在 Windows 上,键入cd当前工作路径。

在 Linux 上,pwd用于当前工作路径。

于 2016-09-29T11:04:00.427 回答