【发布时间】:2021-12-02 02:12:26
【问题描述】:
在我的 Windows 笔记本电脑上,我的公司将环境变量 CD 设置为某个目录,我无法更改它。在批处理文件中,我必须使用当前的工作目录,例如
set current_dir=%cd%
现在环境覆盖当前目录。如果我把这条线
set cd=
前面的原始变量将被删除。由于批处理文件也可能在其他环境中使用,有没有一种安全的方法来获取当前目录?
【问题讨论】:
-
%cd%是一个系统变量。不要碰它。 -
我的公司设置了变量并且 Windows 允许它。这就是我要求安全解决方案的原因。
-
Echo(%__CD__%和/或Echo(%__CD__:~,-1%的输出是什么? -
你必须告诉你的公司
%cd%变量永远不能被设置并且他们应该改变他们的批处理文件。如果您设置了%time%变量,您将无法获取时间,尽管在这种情况下可以通过其他方式检索它。如果您设置了%errorlevel%变量,您可以不以任何其他方式获取此值...换句话说:动态系统变量必须不设置。你不能设置它然后寻找这个问题的补丁/解决方案...:(无论如何,这是一个可能的解决方案:( set "cd=" & set "current_dir=!cd!" & set "cd=%cd%" ) -
@RaphaelM。我看到你是新来的......我已经为你的问题提供了解决方案。如果您没有编辑 Windows 注册表的管理权限,您仍然可以手动输入
DOSKEY或使用DOSKEY创建批处理文件。无论哪种方式,它都会起作用,你会得到你的%CD%。但是,请考虑对答案进行投票并将其标记为已解决。这样做你会得到 2 分。 ;)
标签: windows batch-file environment-variables cwd