
usage: pdftotext [options] <PDF-file> [<text-file>]
Estou usando o pdftotext (xpft, uso acima) para converter todos os PDFs em um diretório (e subdiretórios) em arquivos de texto. Não importa se a estrutura foi preservada ou não, eu só quero gravar os arquivos em um diretório diferente.
Já tenho o cmd cd apontando para o diretório ("C:\input" digamos).
Então, se o caminho de um determinado arquivo de entrada for
C:\input\filename.pdf
E eu quero produzir para
C:\output\filename.txt
Meu comando:
for /r %i in (*.pdf) do pdftotext "%i" -raw "C:\output\%i"
Quase funciona, mas tenta gerar saída para
C:\input\C:\output\filename
o que obviamente causa um erro.
Como faço para resolver isso?
Responder1
Como faço para usar um loop for e enviar 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 letra de unidade, caminho e.pdf
extensão)%~ni.txt
também anexa uma nova extensão,.txt
Sintaxe estendida
Quando um argumento é usado para fornecer um nome de arquivo, a seguinte sintaxe estendida pode ser aplicada:
estamos usando a variável% 1 (mas isso funciona para qualquer parâmetro)
%~f1 Expanda %1 para um nome de caminho totalmente qualificado - C:\utils\MyFile.txt
%~d1 Expanda %1 apenas para uma letra de unidade - C:
%~p1 Expanda %1 apenas para um caminho, por exemplo, \utils\ isso inclui um \ final que será interpretado como um caractere de escape por alguns comandos.
%~n1 Expanda %1 para um nome de arquivo sem extensão de arquivo C:\utils\MyFile ou se apenas um caminho estiver presente (sem barra invertida) - a última pasta nesse caminho.
%~x1 Expandir %1 apenas para uma extensão de arquivo - .txt
%~s1 Altere o significado de f, n, s e x para fazer referência ao nome Short 8.3 (se existir).
%~1 Expanda % 1 removendo quaisquer aspas adjacentes (")
%~a1 Exibe os atributos do arquivo de %1
%~t1 Exibe a data/hora de %1
%~z1 Mostra o tamanho do arquivo %1
%~$PATH:1 Pesquise a variável de ambiente PATH e expanda %1 para o nome completo da primeira correspondência encontrada.
Os modificadores acima podem ser combinados:
%~dp1 Expande % 1 apenas para uma letra de unidade e caminho
%~sp1 Expanda %1 para um caminho reduzido para 8,3 caracteres
%~nx2 Expande %2 apenas para um nome de arquivo e extensão
FonteArgumentos de linha de comando (parâmetros)
Leitura adicional
- Um índice AZ da linha de comando do Windows CMD- Uma excelente referência para todas as coisas relacionadas à linha cmd do Windows.