closures多个batch file

第一次海报,所以希望我得到这个权利。

我正在尝试设置一个batch file,首先读取当前的date和时间,并从中创build一个文件夹,如下所示:

@echo off SET dirname="%date:~0,2%-%date:~3,2%-%date:~6,4%-%time:~0,2%%time:~3,2%" mkdir Bat\%dirname% attrib +s +h %dirname% /s /d 

在此之后,我将一些备份放到文件夹中,然后用7zip命令行将其压缩,并将此行添加到第一个batch file中:

 start /wait Bat\7Zip.bat %dirname% Bat\%dirname%* -r 

其中调用7zip.bat这是:

 @echo off Bat\7z.exe a -mhe -p*** Bat\%dirname%.7z Bat\%dirname%* -r exit 0 

最后我尝试删除原来的文件夹使用:

 start /wait del /F /Q /a Bat\%dirname% exit 0 

这是我的两个问题。 首先,当它运行7zip文件,完成后,第二个命令提示符保持打开,当我手动closures这个第一个提示时,询问是否要中止批处理作业,即使它完成。 我希望一切都靠自己来完成。

其次, del命令工作在它删除文件夹中的文件,但不是文件夹本身,任何想法我失踪?

在此先感谢所有的帮助。 对不起,这是我的第一批尝试之一,所以可能是很sl。。

 @echo off SET "dirname=%date:~0,2%-%date:~3,2%-%date:~6,4%-%time:~0,2%%time:~3,2%" mkdir "Bat\%dirname%" Bat\7z.exe a -mhe -p*** "Bat\%dirname%.7z" "Bat\%dirname%*" -r RD /S /Q "Bat\%dirname%" exit 0 

回答关于目录移除的第二个问题:在del /F /Q /a Bat\%dirname%您必须调用rmdir Bat\%dirname%

start /help

命令/程序如果是内部cmd命令或批处理文件,那么命令处理器将通过/ K开关运行到cmd.exe。 这意味着该命令运行后窗口将保持不变。

  If it is not an internal cmd command or batch file then it is a program and will run as either a windowed application or a console application. 

所以你应该使用start /wait Bat\7z.exe [...]而不是start /wait Bat\7Zip.bat [...]

关于目录清除使用RD /S /Q [drive:]path (谨慎使用)