wol*_*evo 4 windows cmd batch-file
有没有办法获取当前驱动器以外的驱动器的当前工作目录?
Windows 存储每个驱动器的当前目录并%cd%
获取实际驱动器的当前工作目录。
如果我在批处理脚本中更改驱动器,我可以获得实际驱动器的当前工作目录:
cd w:\Downloads
cd c:\Windows
c:
(echo %cd%)
w:
(echo %cd%)
Run Code Online (Sandbox Code Playgroud)
有没有办法在不更改实际驱动器的情况下获取当前工作目录?
搜索答案后,我在https://blogs.msdn.microsoft.com/oldnewthing/20100506-00/?p=14133下发现了一些关于奇怪变量的提示
用于%=c:%)
驱动器 c 的当前目录或%=w:%)
w
或者在批处理脚本中:
cd c:\Windows
cd w:\Downloads
(echo %=c:%)
(echo %=w:%)
Run Code Online (Sandbox Code Playgroud)
更新
正如 @RossRidge 指出的那样,存储这些奇怪变量的不是 Windows ,而是 DOS 命令处理器。这些奇怪的变量只有在当前的“会话”中才知道。这同样适用cd
(参见@Stephan 的评论)
打开两个 DOS 命令处理器:
在第一个 DOS 命令处理器中:
cd c:\Windows
cd w:\Downloads
(echo %=c:%)
-> c:\Windows
(echo %=w:%)
-> w:\Downloads
cd w:
-> w:\Downloads
Run Code Online (Sandbox Code Playgroud)
在第二个 DOS 命令处理器中:
(echo %=w:%)
-> %=w:% <- this variable is not set, not known
cd w:
-> w:\
Run Code Online (Sandbox Code Playgroud)
请注意保存“当前目录”的不一致方式:cd
进入 DOS 命令处理器后返回根目录。但%=w:%
直到目录更改后才设置!
归档时间: |
|
查看次数: |
1055 次 |
最近记录: |