Existem muitos erros neste script.
As instruçõesfor /F "tokens=*" %%1 in (pc_list.txt) do (
for
devem usar um valor alfa para a variável (consulte Documentação MS ). Não é uma variável numérica - que é preservada para parâmetros passados para um arquivo de lote.
Tente algo assim em vez disso.
for /F "tokens=*" %%a in (pc_list.txt) do (
E ...
echo Renaming / Copying files to %
precisa ser alterado para
echo Renaming /Copying files to %%a
E ...
Ren /f "\%%1\c$\Program Files (x86)\SWIFT\NSL\jnsl\wsnaddr.txt" "c$\Program Files (x86)\SWIFT\NSL\jnsl\wsnaddr.old"
precisa ser alterado para:
IF EXIST "\%%a\c$\Program Files (x86)\SWIFT\NSL\jnsl\wsnaddr.old" del /f /q "\%%a\c$\Program Files (x86)\SWIFT\NSL\jnsl\wsnaddr.old"
ren "\%%a\c$\Program Files (x86)\SWIFT\NSL\jnsl\wsnaddr.txt" wsnaddr.old
Porque não há nenhum parâmetro /f
e o segundo parâmetro deve ser um nome de arquivo simples em vez de um caminho completo (consulte Documentação MS ).
(e, claro, eu mudei o %%1
para coincidir com a nova variável %%a
)
Também estou confuso com todas as declarações echo off
. Normalmente, você teria apenas um @ECHO OFF
no início do script. Mas isso não deve causar erros. Apenas faz a saída confusa às vezes.
Eu recomendaria examinar a saída <command> /?
de uma linha de comando se você ainda não descobriu isso. Ele deve ter as mesmas informações que a documentação do MS que eu criei.