У меня есть команда, которая не работает.

Вот:

mkdir \output & for /r %i in (*.pdf) do pdftotext -enc UTF-8 "%i" ".\output\%~ni.txt"

Что я делаю неправильно?

1 ответ1

0

Во-первых, & это амперсанд. | это труба. Амперсанд (&) позволяет запускать несколько команд в одной строке. Канал (|) перенаправляет вывод одной команды в другую команду. Таким образом, название вашего вопроса не отражает ваш фактический вопрос.

Во-вторых .\ - текущий каталог, а \ - корневой каталог. Попробуйте использовать его с командой cd :

cd .\ ничего не будет делать, так как он "изменится" на текущий каталог.
cd \ перенесет вас в корневую папку, независимо от того, сколько папок у вас глубоко.

Проблема в том, что вы используете разные папки output в каждой команде. Когда вы mkdir \output , он создает папку с именем output в корне любого диска, например c:\output . Позже вы ссылаетесь на .\output который указывает на output папку в вашем текущем каталоге , например, c:\users\myUserName\output .

Вот как должна выглядеть ваша команда:

mkdir .\output & for /r %i in (*.pdf) do pdftotext -enc UTF-8 "%i" ".\output\%~ni.txt"

Более того, вы можете найти более подробную справку по адресу https://stackoverflow.com/questions/tagged/cmd.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .