У меня есть команда, которая не работает.
Вот:
mkdir \output & for /r %i in (*.pdf) do pdftotext -enc UTF-8 "%i" ".\output\%~ni.txt"
Что я делаю неправильно?
У меня есть команда, которая не работает.
Вот:
mkdir \output & for /r %i in (*.pdf) do pdftotext -enc UTF-8 "%i" ".\output\%~ni.txt"
Что я делаю неправильно?
Во-первых, & это амперсанд. | это труба. Амперсанд (&) позволяет запускать несколько команд в одной строке. Канал (|) перенаправляет вывод одной команды в другую команду. Таким образом, название вашего вопроса не отражает ваш фактический вопрос.
Во-вторых .\ - текущий каталог, а \ - корневой каталог. Попробуйте использовать его с командой 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.