首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在实现多线程时,在批处理文件中使用".lock“是什么?

在实现多线程时,在批处理文件中使用".lock“是什么?
EN

Stack Overflow用户
提问于 2016-11-14 07:56:38
回答 1查看 226关注 0票数 1

这是密码。由于我是批处理脚本的新手,我无法理解为什么使用.lock,以及为什么它小于9

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-14 08:44:55

9>不是比较表达式,而是输出流9的重定向。

语法9>=是无稽之谈,因为=在这里没有任何意义,因为它将被删除。

输出流9通常不存在,输出将是空文件“Waid1000.lock1”和“Waid1000.lock2”(本例中假设%random%为1000 )。

FOR循环只是测试它是否可以写入同一个文件,这将被阻塞,直到批处理文件退出并释放写锁。

当至少一个文件被锁定时,命令9>"%lock%%%N"失败,然后将执行goto :wait

顺便说一句。您的示例文件中缺少标签:Wait

应该在FOR-循环之前插入它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40584134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档