假设我想回显 %programfiles% 文件夹中的每个可执行文件
cd %programfiles%
for /r . %i in (*.exe) do echo "%~i"
但是它产生了
c:\program files\program1\program1.exe
c:\program files\program2\program2.exe
我想要
program1\program1.exe
program2\program2.exe
如何删除这些前缀?
最佳答案
可以使用batch的字符串替换功能
pushd %programfiles%
set "prefix=%programfiles%"
setlocal DisableDelayedExpansion
for /r . %i in (*.exe) do (
set "progPath=%~i"
setlocal EnableDelayedExpansion
set "progPath=!progPath:%prefix%=!"
echo !progPath!
endlocal
)
popd
关于string - 如何在 Windows 命令行上删除字符串中的前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6335007/