Copie um .txt pela rede e adicione uma data

0

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\Systemplatz Slot 1
@ECHO on

Eu também quero que a data seja adicionada ao nome do arquivo de texto.

Até agora não está funcionando, então estou certo de que fiz algo errado. Se existe uma maneira melhor de fazer isso, por favor, explique.

    
por NetworkKingPin 21.03.2016 / 09:53

1 resposta

1

Eu vejo dois problemas. Primeiro, há esta linha:

XCOPY /y pushd \Oafrpnbtcsi01\Test_Systemplatz\Systemplatz_SLOT_1_Fail.txt

pushd é um comando em si mesmo; não pode ser passado como um argumento para xcopy . xcopy precisa de dois argumentos, uma origem e um destino; parece que você só tem um. Eu estou supondo - mas não tenho certeza - que você queria mover o diretório atual para \Oafrpnbtcsi01\Test_Systemplatz\ , que contém o arquivo que você vai trabalhar. Para fazer isso, substitua a linha acima por apenas isso:

pushd \Oafrpnbtcsi01\Test_Systemplatz\

A segunda questão é sobre esta linha:

move *.txt F:\Public\Logfiles\Systemplatz\Test\Systemplatz Slot 1

Parece que uma das pastas no caminho é chamada Systemplatz Slot 1 , mas move , Slot e 1 parecem argumentos diferentes porque há espaços. Você deve colocar o caminho de destino inteiro entre aspas, assim:

move *.txt "F:\Public\Logfiles\Systemplatz\Test\Systemplatz Slot 1"

Por fim, você provavelmente deseja que popd no final do script inverta o pushd , levando o diretório atual de volta ao local original.

    
por 21.03.2016 / 17:17