1

第一次海报所以希望我做对了。

我正在尝试设置一个批处理文件,该文件首先读取当前日期和时间并从中创建一个文件夹,如下所示:

@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 命令行对其进行压缩,并将这一行添加到第一个批处理文件中:

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 文件时,完成后,第二个命令提示符保持打开状态,当我手动关闭它时,第一个提示符询问我是否要中止批处理作业,即使它已完成。我希望这一切都能自行关闭。

第二关。del 命令的工作原理是删除文件夹中的文件,但不删除文件夹本身,有什么想法吗?

提前感谢所有帮助。抱歉,这是我的第一批尝试之一,所以可能非常草率。

4

3 回答 3

1
@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
于 2013-09-12T19:04:43.047 回答
0

回答关于目录删除的第二个问题:在del /F /Q /a Bat\%dirname%你必须打电话之后rmdir Bat\%dirname%

于 2013-09-12T13:59:44.623 回答
0

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 [...]

关于 dir 删除使用RD /S /Q [drive:]path(谨慎使用)

于 2013-09-12T14:10:06.487 回答