
Um eine Liste der Dateien in einem .rar-Archiv zu erhalten, kann ich diesen Batch verwenden
@(for /R "%UserProfile%\Desktop\test winrar" %%I in (*.rar) do @"%ProgramFiles%\WinRAR\UnRAR.exe" lb "%%I")>files.txt
Aber ich möchte noch etwas anderes: eine Textlistendatei für jedes .rar-Archiv erstellen und nicht nur eine einzige Textdateiliste für alle Archive. Nein, für jedes Archiv eine Datei.
Ich habe viele Archive, mit meinem Batch erstelle ich eine einzelne Textdatei, aber ich möchte für jedes Archiv eine Textdateiliste mit relativem Namen erstellen.
name1.rar => name1.txt
name2.rar => name2.txt
name3.rar => name3.txt
...
Stattdessen erstellt mein Skript nur eine einzelne Dateiliste und das ist für mich nicht nützlich
Antwort1
Mit minimaler Bearbeitung können Sie diese Ergebnisse erzielen:
@(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
Ihr Skript funktioniert, danke. Nur noch eine letzte Sache, wired: Wenn ich eine Dateiliste nur für ein bestimmtes Archiv generieren möchte, zum Beispiel nur für das Archiv namens „11eyes Music Collection (FLAC).rar“, und ich eine Stapelverarbeitung verwenden möchte, wie kann ich Ihr Skript ändern? – Jack 41
- Wenn Sie nur
"11eyes Music Collection (FLAC).rar"
die in aufgeführten Inhalte benötigenFiles.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"
Wenn Sie Inhalte von Folgendem ausschließen müssenFiles.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")
- Wenn Sie eine separate Liste der Datei benötigen, die
"11eyes Music Collection (FLAC).rar"
aber nicht in enthalten istFiles.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
- Wenn Sie eine Dateiliste erhalten möchten perZiehen und Ablegenoder
argument
:
@echo off && cd /d "%~dp0"
<con: "%ProgramFiles%\WinRAR\UnRAR.exe" lb "%~dpnx1" >"%~dp0%~n1.txt"
Wie analysiert der Windows-Eingabeaufforderungsinterpreter cmd.exe Skripte?
Anleitung: Escape-Zeichen, Trennzeichen und Anführungszeichen in der Windows-Befehlszeile