我正在尝试获取一个 .txt 文件并通过网络将其移动xcopy
。
这是我迄今为止的代码:
@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
我还想将日期添加到文本文件的名称中。
到目前为止它还没有起作用,所以我肯定我做错了什么。如果有更好的方法,请解释一下。
答案1
我发现两个问题。首先,有这样一行:
XCOPY /y pushd \\Oafrpnbtcsi01\Test_Systemplatz\Systemplatz_SLOT_1_Fail.txt
pushd
本身就是一个命令;它不能作为参数传递给xcopy
。xcopy
需要两个参数,一个源和一个目标;看起来你只有一个。我猜——但我不确定——你想将当前目录移动到\\Oafrpnbtcsi01\Test_Systemplatz\
,其中包含你要使用的文件。为此,只需将上面的行替换为以下内容:
pushd \\Oafrpnbtcsi01\Test_Systemplatz\
第二个问题出现在这一行:
move *.txt F:\Public\Logfiles\Systemplatz\Test\02\Systemplatz Slot 1
路径中的一个文件夹似乎名为Systemplatz Slot 1
,但和move
看起来像是不同的参数,因为其中有空格。您应该将整个目标路径括在引号中,如下所示:Slot
1
move *.txt "F:\Public\Logfiles\Systemplatz\Test\02\Systemplatz Slot 1"
最后,您可能希望popd
在脚本末尾使用 来反转pushd
,将当前目录返回到其原始位置。