
Estou tentando criar um arquivo bat que irá realocar alguns arquivos ECF de uma pasta para uma nova pasta
Configurei com sucesso um arquivo bat XCopy para outros documentos (.doc, .ppt) etc. e copiei o texto do arquivo bat XCopy em funcionamento e alterei *.doc para *.ecf
@ECHO OFF
cd C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries
REM This is will copy over .doc documents
FOR %%f IN (*.ecf) DO XCOPY "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries" "%%f" "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\"
PAUSE
Um número inválido de parâmetros acontece 9 vezes e é quantos arquivos ECF existem, então parece que os está detectando, mas não os copia?
Responder1
Número inválido de parâmetros
Você tem:
cd C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries
FOR %%f IN (*.ecf) DO XCOPY "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries" "%%f" "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\"
O comando acima xcopy
tem três argumentos:
"C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries"
"%%f"
"C:\Users\Alex.Newton\Documents\Fixes\ProgramName\"
A sintaxe para xcopy
é:
XCOPY source [destination] [options]
Seu terceiro argumento énãouma opção (verxcopiar).
Maneira correta de chamar o xopy
Como você já está no diretório correto, C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries
não precisa do primeiro argumento.
FOR %%f IN (*.ecf) DO XCOPY "%%f" "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\"
Ou:
FOR %%f IN (*.ecf) DO XCOPY "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries\%%f" "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\"
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.
- para /f- Comando de loop em relação aos resultados de outro comando.
- xcopiar- Copie arquivos e/ou árvores de diretórios para outra pasta.