【问题标题】:Windows shell command to get the full path to the current directory?Windows shell 命令获取当前目录的完整路径?
【发布时间】:2010-10-11 02:18:45
【问题描述】:

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

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

【问题讨论】:

  • find /dir/to/start/from -type f -ls 将日期格式化为数字 find /dir/to/start/from -type f -exec ls -l --time-style ="+ %Y %m %e %H:%M" {} \;

标签: windows batch-file command-line cmd


【解决方案1】:

System32下创建一个.bat文件,我们将其命名为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 随处可见。

【讨论】:

  • 你可以“cd | clip”将当前路径复制到剪贴板
【解决方案2】:
@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%

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

【讨论】:

  • 根据定义,他的答案更好,因为您的答案是错误的。它不适用于带有空格的路径。
  • 添加 tokens=* 解决了这个问题。
【解决方案3】:

作为可能的代码之一

    echo off
    for /f "usebackq tokens=* delims= " %%x in (`chdir`) do set var=%var% %%x
    echo The current directory is: "%var:~1%"

【讨论】:

    【解决方案4】:

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

    在 Linux 上,pwd 表示当前工作路径。

    【讨论】:

    • 已有10个答案相同的解决方案,但更多解释
    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

      在 Windows 上:

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

      在 Linux 中:

      PWD显示当前目录的名称。

      【讨论】:

        【解决方案7】:

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

        【讨论】:

        • 你是怎么理解他想从那个说的?而且,在dos和windows cmd下,它通常只是“cd”
        • 老实说,正如问题所述,我想不出他们可能还想问什么。
        • 我可以将此路径存储在 .bat 文件中的变量中吗?
        • @unknown - 首先描述原始问题可能会更好。
        【解决方案8】:

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

        SET var=%cd%
        ECHO %var%
        

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

        更新:如果您使用 SET var = %cd% 而不是 SET var=%cd% ,会发生以下情况。感谢杰布。

        Capturing the current directory from a batch file

        【讨论】:

        • 根据问题,这个答案实际上应该是公认的。
        • 但这不起作用,因为SET var = %cd%将变量var&lt;space&gt;中的值放入var中。您应该避免在 SET 命令中使用空格
        • 根据问题,这个答案实际上应该是公认的。
        【解决方案9】:

        对于 Windows,我们可以使用

        cd

        对于 Linux

        pwd

        命令在那里。

        【讨论】:

          【解决方案10】:

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

          如果启用了命令扩展,那么有几个动态的 可以扩展但不显示的环境变量 SET 显示的变量列表。这些变量值是 每次扩展变量的值时动态计算。 如果用户明确定义了具有这些名称之一的变量,则 该定义将覆盖下面描述的动态定义: %CD% - 扩展为当前目录字符串。 %DATE% - 使用与 DATE 命令相同的格式扩展到当前日期。 %TIME% - 使用与 TIME 命令相同的格式扩展到当前时间。 %RANDOM% - 扩展为 0 到 32767 之间的随机十进制数。 %ERRORLEVEL% - 扩展为当前的 ERRORLEVEL 值 %CMDEXTVERSION% - 扩展到当前的命令处理器扩展 版本号。 %CMDCMDLINE% - 展开到调用 命令处理器。

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

          【讨论】:

            【解决方案11】:

            这一直对我有用:

            SET CurrentDir="%~dp0"
            
            ECHO The current file path this bat file is executing in is the following:
            
            ECHO %CurrentDir%
            
            Pause
            

            【讨论】:

            • 那做错了 - 找到批处理脚本的路径,而不是当前目录。
            • 由于回答了 OP 的问题而被投票赞成......并为我提供了我正在寻找的确切解决方案。谢谢!
            • 不错的收获。当前目录可以引用调用文件的命令而不是文件的位置本身。
            【解决方案12】:

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

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

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

            【讨论】:

              【解决方案13】:

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

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

              【讨论】:

              • 我不明白为什么他需要“cd”来查看他当前的目录。默认情况下,它显示为一天。如果他改变了它,那么他当然知道“cd”是做什么的。
              • 很旧,但只是为了完整性:是的,windows 确实为此提供了一个变量。它被命名为(猜...)%cd%
              【解决方案14】:

              在 Unix 上?

              密码

              【讨论】:

              • OP 最初要求一个“命令”并且没有指定操作系统。现在已指定操作系统,因此此答案不再相关。
              猜你喜欢
              • 2015-09-23
              • 2011-03-26
              • 1970-01-01
              • 2011-01-28
              • 1970-01-01
              • 2010-10-14
              • 1970-01-01
              相关资源
              最近更新 更多