有我的Ping.bat:
@echo offset saveUnrechableLocation=..\PingUnreachableInfo\PingUnrechableInfoDB.txtset IpListLocation=..\ipInfo\all_DB_ip.txtset reachableLocation=..\PingRechableInfo\RechableIp\PingRechableInfoDB.txtset trace=..\PingRechableInfo\tracert\tracertDB.txtset numberOfPings=1@echo Pinging DB > %saveUnrechableLocation%copy /y Nul %reachableLocation% > Nulcopy /y Nul %trace% > Nulfor /F "tokens=*" %%A in (%IpListLocation%) do ( Ping -n %numberOfPings% %%A | find "TTL=" >nul if errorlevel %numberOfPings% ( @echo %%A not rechable >> %saveUnrechableLocation% ) if not errorlevel %numberOfPings% ( @echo %%A >> %reachableLocation% start trace.bat %trace% %%A ))
和trace.bat看起来像这样:
@echo offset saveLocation=%~1set ip=%~2tracert %ip% >> %saveLocation%exit
问题是,当我尝试使用它时,我遇到了这个问题:
the process cannot access the file because it is being used by another process
我该怎么做才能解决这个问题?谢谢!
解决方法 windows重定向不允许多个进程同时打开相同的文件以进行写访问.写 *** 作必须序列化.这可以通过批处理来完成,如 https://stackoverflow.com/a/9344547/1012053所示.但是,我不认为该解决方案对您的情况有帮助.每个tracert进程都需要相当长的时间,并且必须在整个时间内重定向输出.但是您希望同时运行多个进程,所有输出都重定向到同一个文件.即使你要使它工作,输出也是交错的,你将无法弄清楚这一切意味着什么.
我建议将每个tracert输出重定向到一个唯一的文件.您可以将ip地址合并到输出文件名中,您可以使用我展示的技术在每个过程完成后合并文件.
请注意,无需传递输出位置.每个子进程都可以访问跟踪变量,因此可以轻松地重定向到正确的位置.
Ping.bat更改的大纲
...set trace=..\PingRechableInfo\tracert\tracertDB...start trace.bat %%A...
修改了trace.bat
@echo offtracert %1 >%trace%_%1.txt %= Redirect TRACERT to unique temp file =%:merge2>nul ( %= HIDe error messages insIDe the outer parentheses =% >>%trace%.txt ( %= Attempt stdout redirection - Fails if already locked =% type %trace%_%1.txt %= Write the temp file to the merge file =% (call ) %= Clear any error that TYPE may have generated =% )) || goto :merge %= Loop back and try again if stdout redirection Failed =%del %trace%_%1.txt %= Delete the temporary file =%exit
没有评论的缩短形式可能如下所示:
@echo offtracert %1 >%trace%_%1.txt:merge2>nul (>>%trace%.txt (type %trace%_%1.txt&(call )))||goto :mergedel %trace%_%1.txtexit总结
以上是内存溢出为你收集整理的批处理 – 有没有办法批量同步锁定txt文件?全部内容,希望文章能够帮你解决批处理 – 有没有办法批量同步锁定txt文件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)