for 루프를 사용하고 다른 디렉토리로 출력하는 방법

for 루프를 사용하고 다른 디렉토리로 출력하는 방법
 usage: pdftotext [options] <PDF-file> [<text-file>]

저는 pdftotext(위의 xpft, 사용법)를 사용하여 디렉터리(및 하위 디렉터리)의 모든 PDF를 텍스트 파일로 변환하고 있습니다. 구조가 보존되는지 여부는 중요하지 않습니다. 파일을 다른 디렉토리에 쓰고 싶습니다.

cmd cd가 이미 디렉토리("C:\input" say )를 가리키고 있습니다.

따라서 주어진 입력 파일의 경로가 다음과 같다면

 C:\input\filename.pdf

그리고 나는

 C:\output\filename.txt

내 명령:

 for /r %i in (*.pdf) do pdftotext "%i" -raw "C:\output\%i"

거의 작동하지만 다음으로 출력을 시도합니다.

 C:\input\C:\output\filename

분명히 오류가 발생합니다.

이 문제를 어떻게 해결하나요?

답변1

for 루프를 사용하고 다른 디렉토리로 출력하는 방법

다음 명령을 사용하십시오.

for /r %i in (*.pdf) do pdftotext -raw "%i" "C:\output\%~ni.txt"
  • %~ni%i파일 이름만 확장합니다 (예: 드라이브 문자, 경로 및 .pdf확장명 제거).

  • %~ni.txt또한 새로운 확장자를 추가합니다..txt


확장 구문

인수를 사용하여 파일 이름을 제공하는 경우 다음 확장 구문을 적용할 수 있습니다.

변수 %1을(를) 사용하고 있습니다(그러나 이는 모든 매개변수에 대해 작동합니다)

  • %~f1 %1을(를) 정규화된 경로 이름(C:\utils\MyFile.txt)으로 확장합니다.

  • %~d1 %1을(를) 드라이브 문자로만 확장 - C:

  • %~p1 %1을 경로로만 확장합니다. 예: \utils\ 여기에는 일부 명령에서 이스케이프 문자로 해석되는 후행 \가 포함됩니다.

  • %~n1 %1을(를) 파일 확장자 C:\utils\MyFile이 없는 파일 이름으로 확장하거나 경로만 있는 경우(뒤에 백슬래시 없음) 해당 경로의 마지막 폴더를 확장합니다.

  • %~x1 %1을(를) 파일 확장자로만 확장 - .txt

  • %~s1 Short 8.3 이름(존재하는 경우)을 참조하도록 f, n, s 및 x의 의미를 변경합니다.

  • %~1 주변 따옴표(")를 제거하고 %1을(를) 확장합니다.

  • %~a1 %1의 파일 속성을 표시합니다

  • %~t1 %1의 날짜/시간을 표시합니다

  • %~z1 %1의 파일 크기를 표시합니다

  • %~$PATH:1 PATH 환경 변수를 검색하고 %1을(를) 찾은 첫 번째 일치 항목의 정규화된 이름으로 확장합니다.

위의 수정자는 다음과 같이 결합될 수 있습니다.

  • %~dp1 %1을(를) 드라이브 문자 및 경로로만 확장

  • %~sp1 %1을(를) 8.3자로 단축된 경로로 확장하세요

  • %~nx2 %2을(를) 파일 이름과 확장자로만 확장하세요

원천명령줄 인수(Parameters)


추가 읽기

관련 정보