这是密码。由于我是批处理脚本的新手,我无法理解为什么使用.lock,以及为什么它小于9。
set "lock=%temp%\wait%random%.lock"
start "" cmd /c 9>="%lock%1" abcd.bat 4441 %tempdate%
start "" cmd /c 9>="%lock%2" pqrs.bat 4442 %tempdate%
for %%N in (1 2 3 4 5 6 7 8 9) do (
9>="%lock%%%N" || goto :Wait
) 2>nul发布于 2016-11-14 08:44:55
9>不是比较表达式,而是输出流9的重定向。
语法9>=是无稽之谈,因为=在这里没有任何意义,因为它将被删除。
输出流9通常不存在,输出将是空文件“Waid1000.lock1”和“Waid1000.lock2”(本例中假设%random%为1000 )。
FOR循环只是测试它是否可以写入同一个文件,这将被阻塞,直到批处理文件退出并释放写锁。
当至少一个文件被锁定时,命令9>"%lock%%%N"失败,然后将执行goto :wait。
顺便说一句。您的示例文件中缺少标签:Wait,
应该在FOR-循环之前插入它。
https://stackoverflow.com/questions/40584134
复制相似问题