繁体   English   中英

误删除自身的脚本

[英]Script that deletes itself by mistake

该批处理脚本应该映射到PC,并使用日期和时间戳重命名该文件夹中的文件,然后将其复制到另一台PC上的另一个位置。 然后,它将删除该源文件夹中的所有文件,但不包括名为“ LBBS.log”的文件。 除了删除部分之外,其他所有方法都工作正常。 它没有删除文件夹中的任何内容,实际上是删除了批处理文件本身。 当我运行它时,它可以正常复制,但随后会删除自身。 有人可以告诉我要进行此更改需要什么。 我想念什么? 它在Windows 7环境中。 提前致谢。

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

问题是您的脚本和目标目录位于单独的驱动器上。

cd到另一个目录时,如果尝试不使用/d选项移动到另一个驱动器,该命令将失败。

您应该说cd /dx:\\logs而不是cd x:\\logs cd /dx:\\logs这将更改驱动器和目录。

或者,您可以简单地将pushd \\\\MTLLBBS023\\C$入网络驱动器(这也会自动创建一个临时网络驱动器),而不是net usenet use delete命令,然后在脚本末尾popd以退出目录并删除映射的驱动器。 这样,您根本不需要cd

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM