撤消批处理文件终止时的更改

时间:2014-06-11 18:28:50

标签: windows batch-file cmd undo

如果批处理文件被用户终止,我是否可以撤消批处理文件所做的所有更改?例如,如果我附加文本文件并添加文本,重命名文件,通过运行批处理文件删除文件...如果用户终止批处理文件,是否有办法撤消所有更改,然后由它终止用户?或者无论如何我不能让用户在运行时终止批处理文件?

由于

2 个答案:

答案 0 :(得分:0)

您可以避免普通用户以这种方式使用Ctrl-C取消批处理文件:

@echo off
setlocal

if "%~1" equ "NonCancelable" goto NonCancelable
echo Original!
start "" /B "%~F0" NonCancelable
echo Terminating original...
exit

:NonCancelable
echo I am non cancelable!
echo/
set "var="
set /P "var=Try to cancel me! (enter Exit to end): "
if /I "%var%" neq "exit" goto :NonCancelable
echo Terminating non cancelable...

当然,用户可以点击红十字窗口关闭窗口 ...

答案 1 :(得分:0)

在很大程度上取决于您的用户的复杂程度以及他们可以访问的设施。

例如,您可以创建用户批处理执行的不可见批处理。关于如何做到这一点的很多例子。

或许您可以在批处理中创建新文件,然后用新的文件替换现有文件(甚至用全新的文件集创建替换目录)作为批处理中的最后一个操作。