У меня есть команда, которая не работает.
Вот:
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.