【发布时间】:2009-09-15 22:39:02
【问题描述】:
相关:
How to list the elements of the path in a batch file?
How does FOR work?
如何编写批处理文件或 CMD 文件来从路径中删除元素?它应该优雅地处理:
- 大小写差异
- 短名称和长名称
我已经使用 tr.exe 完成了此操作,但它速度慢且复杂,并且使用临时文件,这使得它更加复杂。
我认为答案是这样的:
setlocal
set tpath=""
set _path="%PATH:;=" "%"
for %%p in (%_path%) do (
call :KeepIfNotEqual %%p %elementToRemove%
)
endlocal & set path=%tpath%
...其中 %elementToRemove% 是要删除的路径元素。 KeepIfUnique 必须是一个子例程,它接受两个参数 - 目录名称,对它们进行规范化,如果第一个参数 不等于 到第二个参数 (elementToRemove),则将第一个参数附加到 tpath。
正如我所说,我可以使用 tr.exe 执行此操作,但我可以仅使用 windows cmd.exe shell 中的内置命令来执行此操作吗?
编辑:我想当你真正开始的时候,问题是,如何在 cmd.exe 中进行大小写转换?
【问题讨论】:
-
Windows 7 包含 PowerShell 2,它有望让您的生活更轻松...
标签: windows scripting batch-file cmd