상대 이름이 있는 각 아카이브의 텍스트 파일 목록

상대 이름이 있는 각 아카이브의 텍스트 파일 목록

.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"

Windows 명령 해석기 cmd.exe는 스크립트를 어떻게 구문 분석합니까?

방법: Windows 명령줄에서 이스케이프 문자, 구분 기호 및 따옴표

관련 정보