【发布时间】:2018-04-27 14:46:00
【问题描述】:
我在 Windows 中工作,想知道是否有办法从路径中删除当前工作目录?我知道这是 PowerShell 中的默认行为,但我需要它在批处理或在 Windows 命令行中工作。
在 UNIX 中,我只需确保我的 $PATH 变量不包含 .。有没有办法批量完成这个?这是当前的行为:
H:\tmp>dir
Volume in drive H has no label.
Volume Serial Number is E29C-7B61
Directory of H:\tmp
04/27/2018 10:39 AM <DIR> .
04/27/2018 10:39 AM <DIR> ..
04/27/2018 10:40 AM 37 dwk.bat
1 File(s) 37 bytes
2 Dir(s) 987,995,770,880 bytes free
H:\tmp>dwk.bat
dwk.bat has been run.
H:\tmp>
这是期望的行为:
H:\tmp>dwk.bat
'dwk.bat' is not recognized as an internal or external command,
operable program or batch file.
H:\tmp>.\dwk.bat
dwk.bat has been run.
H:\tmp>
谢谢。
【问题讨论】:
-
您基本上是在要求更改 Windows 的行为。 Windows 将始终首先搜索当前目录。然后搜索 %path% 变量,最后搜索注册表。我为您看到的唯一选择是让它在上一级目录中查找。
..\dwk.bat -
是的,我正在尝试更改 Windows 的默认行为。正如我所说,在 UNIX 或 PowerShell 中这样做很简单。
-
我很好奇,你是如何在 UNIX 中做到这一点的?和PowerShell?即更改它们的 shell 默认行为,以便
.\dwk.bat不在当前工作目录中搜索! -
@compo 两个 shell 都不默认在当前目录中搜索,你必须以
.\ resp. ./为前缀在 powershell 中你可以使用 tab 自动搜索。 -
@Tripp,您不是说在 UNIX 或 Powershell 中更改默认行为是微不足道的。默认行为是 .\ 在当前目录中搜索,所以告诉我更改默认行为是多么简单!除非您可以以编程方式这样做,否则我看不出您的问题与此处的相关性。
标签: batch-file path working-directory