此批处理脚本应映射到PC,并使用日期和时间戳重命名该文件夹中的文件,然后将它们复制到不同PC上的另一个位置。然后,它应该删除该源文件夹中除名为"LBBS.log“的文件之外的所有文件。除了删除部分之外,其他的都运行得很好。它不会删除文件夹中的任何内容,而实际上是在删除批处理文件本身。当我运行它时,它复制得很好,但随后它会自动删除。有没有人能告诉我我需要做些什么才能让它起作用。我遗漏了什么?它运行在Windows7环境下。提前谢谢。
net use x: \\MTLLBBS023\C$
set "stamp=%date:~4,2%%date:~7,2%%date:~10,4%%time:~0,2%%time:~3,2%%time:~6,2%"
set "source=MTLLBBS023"
xcopy /S /E /I x:\logs E:\Data\Logs\MTLLBBS023\%source%-%stamp%.*
cd x:\Logs
for %%i in (*) do if not %%i == LBBS.log del %%i
net use x: /delete发布于 2016-04-15 03:57:35
问题是您的脚本和目标目录位于不同的驱动器上。
在不使用/d选项的情况下尝试移动到另一个驱动器时,当您cd到另一个目录时,该命令将失败。
您应该说cd /d x:\logs,而不是cd x:\logs -这将更改驱动器和目录。
或者,您也可以不使用net use和net use delete命令,而是通过pushd \\MTLLBBS023\C$转到网络驱动器(这也会自动创建一个临时的网络驱动器),然后在脚本末尾执行popd,以离开目录并删除映射的驱动器。这样,您根本不需要使用cd。
https://stackoverflow.com/questions/36631646
复制相似问题