Como eu uso um loop for e a saída para um diretório diferente
Use o seguinte comando:
for /r %i in (*.pdf) do pdftotext -raw "%i" "C:\output\%~ni.txt"
-
%~ni
Expande%i
apenas para um nome de arquivo (ou seja, remove a letra da unidade, o caminho e a extensão.pdf
) -
%~ni.txt
também acrescenta uma nova extensão,.txt
Sintaxe estendida
When an argument is used to supply a filename then the following extended syntax can be applied:
we are using the variable %1 (but this works for any parameter)
%~f1 Expand %1 to a Fully qualified path name - C:\utils\MyFile.txt
%~d1 Expand %1 to a Drive letter only - C:
%~p1 Expand %1 to a Path only e.g. \utils\ this includes a trailing \ which will be interpreted as an escape character by some commands.
%~n1 Expand %1 to a file Name without file extension C:\utils\MyFile or if only a path is present (with no trailing backslash) - the last folder in that path.
%~x1 Expand %1 to a file eXtension only - .txt
%~s1 Change the meaning of f, n, s and x to reference the Short 8.3 name (if it exists.)
%~1 Expand %1 removing any surrounding quotes (")
%~a1 Display the file attributes of %1
%~t1 Display the date/time of %1
%~z1 Display the file size of %1
%~$PATH:1 Search the PATH environment variable and expand %1 to the fully qualified name of the first match found.
The modifiers above can be combined:
%~dp1 Expand %1 to a drive letter and path only
%~sp1 Expand %1 to a path shortened to 8.3 characters
%~nx2 Expand %2 to a file name and extension only
Fonte Argumentos da Linha de Comando (Parâmetros)
Outras leituras
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.