批处理文件暂停

批处理文件暂停

我正在测试一个批处理文件,并暂停一下以仔细检查脚本是否正常运行。

我的问题是,如果脚本遇到暂停,并且我修改了脚本,添加一行或删除一行,保存并按下一个键继续,我的更改是否也会加载,还是我必须再次运行批处理文件才能使更改生效?

答案1

如果我在批处理文件被pause删除时对其进行修改,会发生什么情况?

对批处理文件所做的更改pause声明反映在结果中。

对批处理文件所做的更改语句pause将被忽略,只要它们不改变字符数。参见答案斯格摩尔原因如下。

答案2

暂停语句后对批处理文件所做的更改是正常的,并且将在您点击任何继续时生效。

但我会强烈建议你这样做不是更改暂停语句之前的任何内容。

Windows 会记住它所在的位置,因此在暂停语句之前对批处理文件所做的更改可能会以奇怪的方式影响批处理文件,并可能导致严重问题。

例如,如果你有一个简单的批处理文件,它执行类似

@Rem 
@Echo "Hello"
pause
@Echo  Dir c:\windows

当执行暂停时,Windows 认为它​​位于文件的第 27 个字节。如果你删除第一行,那么由于你已删除了五个字符,所以所有内容都会移动,但是当你按任意键时,Windows 将从第 27 个字符继续。

因此,不要发出命令

 @Echo  Dir c:\windows 

它发出

 Dir c:\windows

现在想象一下如果你的原始批次说会发生什么

@Echo Del c:\windows

相关内容