Как использовать цикл for и вывести данные в другой каталог?

Как использовать цикл for и вывести данные в другой каталог?
 usage: pdftotext [options] <PDF-file> [<text-file>]

Я использую pdftotext (xpft, использование выше) для конвертации всех pdf-файлов в каталоге (и подкаталогах) в текстовые файлы. Неважно, сохраняется структура или нет, я просто хочу записать файлы в другой каталог.

У меня cmd cd уже указывает на каталог (например, "C:\input").

Итак, если путь к данному входному файлу равен

 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 Измените значение f, n, s и x так, чтобы оно ссылалось на короткое имя 8.3 (если оно существует).

  • %~1 Развернуть %1, удалив все окружающие кавычки (")

  • %~a1 Отобразить атрибуты файла %1

  • %~t1 Отображение даты/времени %1

  • %~z1 Отобразить размер файла %1

  • %~$PATH:1 Найдите переменную среды PATH и разверните %1 до полного имени первого найденного совпадения.

Модификаторы, указанные выше, можно комбинировать:

  • %~dp1 Расширить %1 только до буквы диска и пути

  • %~sp1 Расширить %1 до пути, сокращенного до 8,3 символов

  • %~nx2 Расширить %2 только до имени файла и расширения

ИсточникАргументы командной строки (параметры)


дальнейшее чтение

Связанный контент