Problema .BAT

Cikaybe

Power Member
Olá,

Estou a tentar fazer um ficheiro batch que me mova os ficheiros com um certo nome para uma directoria a minha escolha.

Código:
@ECHO OFF
dir /b *NOME_DO_FICHEIRO*.* > mover.txt
for /f %i in (mover.txt) do move %i CAMINHO_DESTINO

Se correr o ficheiro bat dá-me o erro "não era esperado nesta altura.", mas se colar estas mesmas linhas na linha de comandos isto corre sem problemas.

Um exemplo:
Código:
@ECHO OFF
dir /b *tech*.* > mover.txt
for /f %i in (mover.txt) do move %i D:\online\links\tech\

Output: D:\online\links\tech\ não era esperado nesta altura.

Alguém pode ajudar?
 
Última edição:
Estou a ter um problema com ficheiros que contenham espaços nos nomes. Existe alguma maneira de contornar isso?

Um exemplo:
Código:
Se tiver um ficheiro com o nome: [B]

Techzone numero 1.txt[/B] 

ao correr o ficheiro bat ele apenas substitui com [B]Techzone[/B] ignorando o resto do nome.
Existe alguma maneira de o obrigar a colocar toda o nome?

Obrigado
 
Só deves colocar as aspas no %%i do comando move. o do comando for continua sem aspas:

for /f %%i in (mover.txt) do move "%%i" D:\online\links\tech\
 
ou melhor, para evitar que o comando "for" use o espaço como separador:

Código:
for /f "delims=?" %%i in (mover.txt) do move "%%i" D:\online\links\tech\
 
"delims" permite indicar qual o delimitador de cada «palavra». por omissão o sistema usa o espaço e o tab.

Por exemplo, se tiveres "zé manel.txt", o comando «for» primeiro processa o "zé" e depois o "manel.txt".
Se definires que o delimitador é o "?" (caracter que nunca aparece no nome de um ficheiro) então de certeza que toda a linha é processada de uma única vez. :p
 
Back
Topo