Estou tentando pegar um arquivo .txt e movê-lo pela rede com xcopy
.
Aqui está o meu código até agora:
@ECHO off
XCOPY /y pushd \\Oafrpnbtcsi01\Test_Systemplatz\Systemplatz_SLOT_1_Fail.txt
rem get date, make if file name friendly
FOR /F "tokens=1-4 delims=/ " %%i in ('date/t') do set d=%%i-%%j-%%k-%%l
set MBD=Systemplatz_SLOT_1_FailB%d%DN.txt
ren Systemplatz_SLOT_1_Fail.txt %MBD%
move *.txt F:\Public\Logfiles\Systemplatz\Test\02\Systemplatz Slot 1
@ECHO on
Também quero que a data seja adicionada ao nome do arquivo de texto.
Até agora, não está funcionando, então tenho certeza de que fiz algo errado. Se houver uma maneira melhor de fazer isso, explique.
Respostas:
Eu vejo dois problemas. Primeiro, há esta linha:
pushd
é um comando em si; não pode ser passado como argumento paraxcopy
.xcopy
precisa de dois argumentos, uma fonte e um destino; parece que você só tem um. Estou supondo - mas não tenho certeza - que você deseja mover o diretório atual\\Oafrpnbtcsi01\Test_Systemplatz\
, que contém o arquivo com o qual você irá trabalhar. Para fazer isso, substitua a linha acima por apenas isso:A segunda questão está nesta linha:
Parece que uma das pastas no caminho é chamado
Systemplatz Slot 1
, masmove
,Slot
e1
se parecer com argumentos diferentes porque existem espaços. Você deve colocar todo o caminho de destino entre aspas, assim:Por fim, você provavelmente deseja que um
popd
no final do script invertapushd
, levando o diretório atual de volta ao seu local original.fonte