要获取 .rar 档案中的文件列表,我可以使用此批处理
@(for /R "%UserProfile%\Desktop\test winrar" %%I in (*.rar) do @"%ProgramFiles%\WinRAR\UnRAR.exe" lb "%%I")>files.txt
但我想要另一件事:为每个 .rar 档案创建一个文本列表文件,而不仅仅是为所有档案创建一个文本文件列表。不,对于每个档案,一个文件
我有多个档案,使用批处理我创建一个文本文件,但我想为每个档案创建一个具有相对名称的文本文件列表。
name1.rar => name1.txt
name2.rar => name2.txt
name3.rar => name3.txt
...
相反,我的脚本只创建一个文件列表,这对我没有用
答案1
只需最少的编辑就可以获得以下结果:
@(for /R "%UserProfile%\Desktop\test winrar" %%I in (*.rar)do @"%ProgramFiles%\WinRAR\UnRAR.exe" lb "%%I">"%%~nI.txt" & type "%%~nI.txt">>Files.txt)
rem :: or....
@(for /R "%UserProfile%\Desktop\test winrar" %%I in (*.rar)do @"%ProgramFiles%\WinRAR\UnRAR.exe" lb "%%~I">"%%~nI.txt" & type "%%~nI.txt")>Files.txt
您的脚本有效,谢谢。最后还有一件事:如果我要仅为特定档案生成文件列表,例如仅为名为“11eyes Music Collection (FLAC).rar”的档案生成文件列表,并且我想使用批处理,我该如何更改您的脚本? – Jack 41
- 如果您只需要
"11eyes Music Collection (FLAC).rar"
列出的内容Files.txt
:
@echo off && cd /d "%~dp0"
set "_path=%UserProfile%\Desktop\test"
set "_wRar="%ProgramFiles%\WinRAR\UnRAR.exe""
set "_File=11eyes Music Collection (FLAC).rar"
for /f eol^=^|^tokens^=*delims^=^ %%i in ('
%__AppDir__%where.exe /R "%_path%" "%_File%"
')do %_WRar% lb "%%~i" >"%~dp0%%~ni.txt"
- 如果您需要排除
"11eyes Music Collection (FLAC).rar"
以下内容Files.txt
:
@echo off && cd /d "%~dp0"
set "_File=1eyes Music Collection (FLAC).rar"
set "_path=%UserProfile%\Desktop\test winrar"
set "_wRar="%ProgramFiles%\WinRAR\UnRAR.exe""
>.\Files.txt (for /R "%_path%" %%I in (*.rar
)do if /i "%_File%"=="%%~nxI" > "%%~nI.txt"(
%_WRar% lb "%%~I") else %_WRar% lb "%%~I")
- 如果您需要该文件的单独列表
"11eyes Music Collection (FLAC).rar"
但未包含在内Files.txt
:
@echo off && cd /d "%~dp0"
set "_File=1eyes Music Collection (FLAC).rar"
set "_path=%UserProfile%\Desktop\test winrar"
set "_wRar="%ProgramFiles%\WinRAR\UnRAR.exe""
>.\Files.txt (for /R "%_path%" %%I in (
*.rar) do if /i "%_File%"=="%%~nxI" (
%_WRar% lb "%%~I" >"%%~nI.txt" && (
%_WRar% lb "%%~I")) else ^< nul ^
%_WRar% lb "%%~I") && goto :eof
- 如果你想通过以下方式获取文件列表拖放或者
argument
:
@echo off && cd /d "%~dp0"
<con: "%ProgramFiles%\WinRAR\UnRAR.exe" lb "%~dpnx1" >"%~dp0%~n1.txt"