windows – 如何编写.bat或.cmd文件以从PATH中删除元素?
发布时间:2020-12-14 01:51:21 所属栏目:Windows 来源:网络整理
导读:有关: How to list the elements of the path in a batch file? How does FOR work? 如何编写批处理文件或CMD文件以从路径中删除元素?它应该优雅地处理: 案件的差异 短名和长名 我使用tr.exe完成了这个,但是它很慢而且复杂并且使用了临时文件,这使得它变
有关:
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中进行大小写转换? 解决方法
这是我想出来的,使用伊戈尔的暗示.
@echo off goto START ------------------------------------------------------- rmpath.bat remove a path element from path Created Tue Sep 15 21:33:54 2009 ------------------------------------------------------- :START SETLOCAL ENABLEDELAYEDEXPANSION @REM require one argument (the path element to remove) if _%1==_ goto USAGE @REM ~fs = remove quotes,full path,short names set fqElement=%~fs1 @REM convert path to a list of quote-delimited strings,separated by spaces set fpath="%PATH:;=" "%" @REM iterate through those path elements for %%p in (%fpath%) do ( @REM ~fs = remove quotes,short names set p2=%%~fsp @REM is this element NOT the one we want to remove? if /i NOT "!p2!"=="%fqElement%" ( if _!tpath!==_ (set tpath=%%~p) else (set tpath=!tpath!;%%~p) ) ) set path=!tpath! @call :LISTPATH goto ALL_DONE ------------------------------------------------------- -------------------------------------------- :LISTPATH echo. set _path="%PATH:;=" "%" for %%p in (%_path%) do if not "%%~p"=="" echo %%~p echo. goto :EOF -------------------------------------------- -------------------------------------------- :USAGE echo usage: rmpath ^<arg^> echo removes a path element from the path. goto ALL_DONE -------------------------------------------- :ALL_DONE ENDLOCAL & set path=%tpath% (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows Forms .NET中的热键(非全局)
- 重新注册Net Framework 2.0/4.0 报错0x8007000B 0x80070643
- windows – 仅在文件更新/修改时使用scp上传文件?
- windows-server-2008 – 是否有预部署Windows工作站验证程序
- windows – 以MONO Runtime为目标导致Xamarin Build失败
- windows-server-2008-r2 – 模拟服务帐户
- macos – Applescript – 将窗口带到前台
- unit-testing – 以编程方式将.reg文件合并到win32注册表中
- windows – 为什么正是TranslateMessage
- wcf – 有关替换Microsoft .NET的Web服务增强功能(WSE)3.0的
推荐文章
站长推荐
热点阅读