Refiro-me à pergunta Adicionar texto ao final do nome do arquivo (mas antes da extensão) usando o arquivo em lotes, pois tenho o mesmo problema. Usando o Windows 7 32-bit Enterprise (eu sei, eu sei...) com todas as atualizações escrevi um pequeno arquivo de lote pdfrename.bat
com apenas três linhas:
um comentário, começando com
REM
e sem sinal de continuação "oculto" mais à direita da linhao comando proposto, copiado e colado da fonte conforme fornecido por @Karan , comentado com
REM
o comando adotado para batch (duplicando o
%
):REM Rework 2020-12-16 REM for %a in (*.txt) do ren "%~a" "%~na version 1%~xa" for %%F in (*.pdf) do ren "%%~F" "%%~nF OdB%%~xF"
Executando o comando (3.) no prompt de comando,
for %F in (*.pdf) do ren "%~F" "%~nF OdB%~xF"
funciona bem.
Mas a execução de todo o arquivo em lotes pdfrename.bat
do Windows Explorer falha. A execução do arquivo em lotes no prompt de comando pdfrename.bat
produz um erro de sintaxe de mensagem de erro:
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters
ist ungültig: %~na version 1%~xa"
[...]
Você não precisa entender alemão. O ponto importante é que a mensagem de erro se refere à segunda linha comentada (2.), não à terceira linha!
Tentei redigitar REM
, inseri uma tabulação após o REM, inseri uma segunda REM
após a primeira ( REM REM ....
), inseri uma terceira linha após a segunda com o mesmo conteúdo e excluí a segunda linha depois - nada mudou: o arquivo de lote termina no comentado segunda linha com um erro de sintaxe. Assim que a segunda linha incriminada é eliminada do lote, o lote funciona bem.
Eu procurei por "REM é ignorado", mas sem sorte, então eu posto o assunto aqui. Eu nunca ouvi falar ou experimentei antes que o processador de comandos tenta pelo menos analisar uma linha comentada - e no caso de haver algo errado com o código após o sinal de comentário que ele encerra o script em lote.