[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】怎么检测bat脚本窗口是否打开?

本帖最后由 mimixi666 于 2017-12-21 10:07 编辑

我想循环做一些事情,但是有可能中间会中断,所以想写两个脚本,一个循环检测用的脚本,一个是做事情的脚本。
但是现在不知道怎么检测我的那个bat脚本窗口是否被关闭了。

  1. :s
  2. start /wait "" "要启动的cmd"
  3. goto s
复制代码
这样可以防止关闭CMD,如果只允许一次,也可以去掉循环。
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

这样可以防止关闭CMD,如果只允许一次,也可以去掉循环。
ivor 发表于 2017-12-13 19:41



    中校,你好,有几个问题想请教
    1. 为什么我if的语句有条指令不执行,还是执行不生效?

    2. 为什么dir 后面多出了一个1的?

    3. start /wait "" test.bat" 第一个双引号有什么用的?
    4. 怎么可以让它自动死循环运行,不用人工干预(每次都有"终止批处理操作吗(Y/N)? n"),后面有源码有图


loop.bat源码:
  1. set /a count = 1;
  2. set /a max_count = 3;
  3. :loop
  4. if %count% leq %max_count% (
  5.         ::后面那个双引号有什么用?
  6. start /wait "" test.bat"
  7.         ::下面这条语句不生效
  8. set /a count += 1;
  9. goto loop
  10. ) else (
  11. exit
  12. )
复制代码
test.bat源码:
  1. dir > log.txt
复制代码
[attach]10938[/attach]

TOP

本帖最后由 ivor 于 2017-12-14 21:55 编辑
dir 1>log.txt    你可以查看http://www.bathome.net/viewthrea ... =%D6%D8%B6%A8%CF%F2

start /wait "" "test.bat"  因为"test.bat"  所以前面加""

EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
回复 3# mimixi666


死循环:
  1. :s
  2. command
  3. goto s
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 4# ivor


    好的,谢谢。

TOP

返回列表