Vic*_*Dev 9 windows batch command-line
我有以下脚本来列出所有文件,从目录中递归地列出,并具有.phtml扩展名。
@echo off
setlocal
for /f %%G in ('forfiles /s /m *.phtml /c "cmd /c echo @relpath"') do echo %%G >> listoffiles.txt
endlocal
exit
Run Code Online (Sandbox Code Playgroud)
它仅列出文件的相对路径。上面的脚本是从中间位置运行的,所以我没有在@relpath变量中获得完整路径。
此外,我在结果行中得到了引号,我想将其删除。
我想通过一些代码更改获得这些文件的绝对路径,如果可以在我的代码中使用全局变量,那么这对我来说是最好的,因为我不是 Windows 批处理脚本编写者。
@relpath变量中的完整路径。我还在结果行中得到引号,我想将其删除。
以下批处理文件可以完成您想要的操作:
@echo off
setlocal enableDelayedExpansion
for /f %%G in ('forfiles /s /m *.phtml /c "cmd /c echo @path"') do (
set _name=%%G
rem strip the quotes
echo !_name:~1,-1! >> listoffiles.txt
)
endlocal
exit
Run Code Online (Sandbox Code Playgroud)
笔记:
@path(文件的完整路径)而不是@relpath(文件的相对路径)。substring表达式删除引号(:~1,-1从变量字符串中删除第一个和最后一个字符)。setlocal EnableDelayedExpansion以便变量在for循环中正确更新。