
Para obtener una lista de archivos dentro de un archivo .rar, puedo usar este lote
@(for /R "%UserProfile%\Desktop\test winrar" %%I in (*.rar) do @"%ProgramFiles%\WinRAR\UnRAR.exe" lb "%%I")>files.txt
Pero quiero otra cosa: crear un archivo de lista de texto para cada archivo .rar y no solo una lista de archivos de texto para todos los archivos. No, para cada archivo, un archivo.
Tengo muchos archivos, con mi lote creo un solo archivo de texto, pero quiero crear una lista de archivos de texto para cada archivo con un nombre relativo.
name1.rar => name1.txt
name2.rar => name2.txt
name3.rar => name3.txt
...
En cambio, mi secuencia de comandos crea solo una lista de archivos y esto no es útil para mí.
Respuesta1
Con una edición mínima puede obtener estos resultados:
@(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
Tu guión funciona, gracias. Sólo una última cosa: si quisiera generar una lista de archivos solo para un archivo en particular, por ejemplo, solo para un archivo llamado "11eyes Music Collection (FLAC).rar" y quiero usar un lote, ¿cómo puedo cambiarlo? tu guión? – Gato 41
- Si solo necesita
"11eyes Music Collection (FLAC).rar"
competir listado enFiles.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"
- Si necesita excluir
"11eyes Music Collection (FLAC).rar"
la contienda deFiles.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")
- Si necesita una lista separada del archivo
"11eyes Music Collection (FLAC).rar"
pero no incluido enFiles.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
- Si desea obtener un listado de archivos porarrastrando y soltandoo
argument
:
@echo off && cd /d "%~dp0"
<con: "%ProgramFiles%\WinRAR\UnRAR.exe" lb "%~dpnx1" >"%~dp0%~n1.txt"
Algunas lecturas adicionales:
[√]Si /?
[√]Colocar /?
[√]Para /?
[√]Para /F
[√]Para /R
[√]Dónde /?
¿Cómo analiza los scripts el intérprete de comandos de Windows cmd.exe?
Cómo hacerlo: Caracteres de escape, delimitadores y comillas en la línea de comando de Windows