
要取得 .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”的存檔,並且我想使用批處理,我該如何更改>你的劇本? – 傑克 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"