所以我的任务是遍历一个目录并设置一个变量来捕获 zip 文件名。
然后使用该变量来解析下划线之前字符串左侧的内容。这样我就可以命名一个日志文件。我搜索了高低,但我没有在 Stack 上看到任何好的例子。当我使用 %%i
时,它会返回一个完整的目录路径。 (此处不需要。)如果我使用 %%z
,我将返回 null,如何将 %zipfile%
变量传递到嵌套循环 In()
中?
setlocal enableextensions enabledelayedexpansion
set dir1="C:\test\"
set 7zip="C:\Program Files\7-Zip\7z.exe"
set output="C:\test\Filelist.txt"
REM enter folder location
cd C:\test
REM loop through zip files
for /r %%i in (*.zip) do ( set zipfile=%%~nxi
for /F " delims=_" %%z in (%zipfile%) do (set log="%%z_file_list.txt")
)
Pause
REM Del %log%
答案 0 :(得分:0)
以下内容对您有帮助吗?
@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
Set "dir1=C:\test"
Set "7zip="%ProgramFiles%\7-Zip\7z.exe"
Set "output=C:\test\Filelist.txt"
For /F "Delims=" %%G In (
'Set "PATHEXT=" ^& %SystemRoot%\System32\where.exe /F /R "%dir1%" "?*_*.zip" 2^>NUL'
) Do (
For /F "Delims=_" %%H In (
"%%~nG"
) Do (
Echo Set "log=%%H_file_list.txt"
)
)
Pause