找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 92005|回复: 30

[文件操作] [已解决]怎样让一个批处理关闭后,等1秒再次打开

[复制链接]
发表于 2021-10-26 11:06:39 | 显示全部楼层 |阅读模式
本帖最后由 5i365 于 2021-10-29 18:46 编辑

情况是这样的, 有个批处理执行后, 需要退出一下, 然后再打开它, 才可以继续执行, 否则就无法继续执行后面代码, 求高手支招, 提前感谢!

想了一个办法, 在退出批处理前, 设置一下计划任务两秒后打开自身, 然后删除计划任务,继续执行, 但是不知道代码如何写

试过重定向一个bat倒计时,然后打开自身, 这样也不行, 需要关闭命令行窗口后,再执行才可以, 重定向的方法, 命令行窗口一直都在运行, 只是前后接上了

代码如下: 因为要安装exe才能测试出来, 不然会死循环, 所以大文件在后面的9楼, 问题已经解决, 看12楼
  1. @echo off
  2. color 1f
  3. echo.
  4. echo GIT 版本:
  5. call git --version 2>nul
  6. if %errorlevel% == 0 (
  7.     echo.
  8.     echo GIT 已安装
  9.     echo ______________________________
  10. ) else (
  11.     echo.
  12.     echo GIT 未安装, 开始安装
  13.     echo ______________________________
  14.    
  15.         Git-2.33.0.2-64-bit.exe /VERYSILENT
  16.         cls
  17.         echo.
  18.         echo GIT 已安装
  19.     echo ______________________________
  20. )

  21. echo.
  22. echo NPM 版本:
  23. call npm --version 2>nul
  24. if %errorlevel% == 0 (
  25.     echo.
  26.     echo NPM 已安装, 继续执行
  27.     echo ______________________________
  28.    
  29. ) else (
  30.     echo.
  31.     echo NPM 未安装, 开始安装
  32.     echo ______________________________
  33.    
  34.         MsiExec.exe /i node-v13.14.0-x64.msi /qn
  35.         cls
  36.         echo.
  37.         echo NPM 已安装, 按任意键退出后, 重新打开
  38.     echo ______________________________
  39.     pause
  40.     exit
  41.     REM 此处必须要退出一下才行, 不能直接执行下面的 goto :next 不然下面的:next部分的代码执行时会一直打开新CMD窗口死循环
  42. )

  43. :next
  44. echo.
  45. echo Yarn 版本:
  46. call yarn --version 2>nul
  47. if %errorlevel% == 0 (
  48.     echo.
  49.     echo Yarn 已安装
  50.     echo _________________________________________________________
  51. ) else (
  52.     echo.
  53.     echo Yarn 未安装, 开始安装
  54.     echo _________________________________________________________
  55.    
  56.     npm install -g yarn --registry=https://registry.npm.taobao.org
  57.     echo.
  58.     echo 正在设置环境变量
  59.     echo _________________________________________________________
  60.     setx PATH "%PATH%;C:\Users\%username%\AppData\Local\Yarn\bin"
  61.     echo Yarn 已安装, 继续重启执行
  62.     echo _________________________________________________________
  63.    
  64.     start .\安装git_node.bat
  65. )

  66. echo.
  67. echo Yarn 版本:
  68. call yarn --version 2>nul
  69. pause
复制代码
发表于 2021-10-26 11:35:49 | 显示全部楼层
回复 1# 5i365


    请把代码发出来看看能否直接去掉这个限制
发表于 2021-10-27 13:01:35 | 显示全部楼层
本帖最后由 yakeyun 于 2021-10-27 14:17 编辑

回复 1# 5i365


把这个文件放到批处理文件同目录,然后批处理重写一个批处理“test.bat”加入下面代码:
@echo off
strat .\run.bat
timeout /t 5 >nul
start .\test.exe
exit

延时的目的是让run.bat第一次运行到bug位置,其中“run.bat”为你要执行的脚本,最终在同目录下放置一个test.exe和一个test.bat。
test.exe   下载地址:
https://sanli.lanzouw.com/ir4Brvtzswf
https://sanli.lanzoui.com/ir4Brvtzswf
发表于 2021-10-27 13:21:02 | 显示全部楼层
本帖最后由 xp3000 于 2021-10-27 13:58 编辑
  1. @cd "%~dp0"&@echo off&setlocal enabledelayedexpansion

  2. set n=0
  3. :x
  4. for /f "delims=" %%a in ('dir /b/a-d/oN "test.exe"') do (
  5.     set fn=%%a&set /a n+=1
  6. echo 运行命令……
  7.     if !n! EQU 1 start "test.bat"
  8.     if !n! EQU 2 (start %%a & goto :y) else (goto :x)
  9.     )

  10. :y
  11. echo.
  12. echo 运行下一个命令……
  13. pause & exit

复制代码
软件第一时间被360干掉了,不能测试,不知道行不行
发表于 2021-10-27 14:16:36 | 显示全部楼层
本帖最后由 yakeyun 于 2021-10-27 14:27 编辑

回复 4# xp3000


test.exe  是用易语言写的一个控制台,其功能如下:
1.结束CMD进程
2.延时1.5秒
3.运行run.bat




提供一个360免杀版:
https://sanli.lanzouw.com/i2pvhvu3l9e
发表于 2021-10-27 19:45:56 | 显示全部楼层
回复 5# yakeyun


    恰好,我安装好 易语言(E语言) 。
 楼主| 发表于 2021-10-28 08:34:45 | 显示全部楼层
回复 2# Batcher


    感谢回复, 是在别的博客找的安装GIT和NODE的代码, 里面有环境变量的设置, 感觉这个设置有关系,

我稍后整理一下, 贴上来, 只贴代码, 测试不了,或者死循环了,
 楼主| 发表于 2021-10-28 08:36:01 | 显示全部楼层
回复 4# xp3000


    是同一个批处理, 关了之后, 再开
 楼主| 发表于 2021-10-28 09:26:00 | 显示全部楼层
回复 2# Batcher


    老大, 文件因为很大, 已经上传文叔叔了, 麻烦楼上诸位高手帮看一下, 建议在虚拟机下运行, 因为不退出的那个批处理会死循环, 感谢

https://ws28.cn/f/6qniucilxv4 复制链接到浏览器打开
发表于 2021-10-28 11:55:33 | 显示全部楼层
本帖最后由 xp3000 于 2021-10-28 14:25 编辑
  1. @cd "%~dp0"&@echo off&setlocal enabledelayedexpansion

  2. set n=0
  3. :x
  4. for /f "delims=" %%a in ('dir /b/a-d/oN "测试.exe"') do (set /a n+=1
  5. echo 运行!n!次命令……
  6.     timeout 2 >nul
  7.     echo.新窗口打开test.bat和%%a
  8.     if !n! EQU 1 start /I /MIN cmd /k "start %%a |echo.间隔10秒退出……&timeout 10&&exit"
  9.     if !n! EQU 2 (start %%a & goto :y) else (echo.& echo 返回重新执行命令…… & echo. & goto :x)
  10.     )

  11. :y
  12. echo.
  13. echo 运行下一个命令……
  14. echo.
  15. timeout 5 >nul & exit
复制代码
start %%a 后面可以加空格+文件路径,一次打开多个
timeout 10后面可以加&start xxx.bat,在10秒后打开xxx.bat
 楼主| 发表于 2021-10-28 12:34:44 | 显示全部楼层
回复 10# xp3000


    感谢帮忙, 没太看明白怎么回事, 我的代码问题, 必须要把cmd窗口关上一次才可以生效, 否则就不行
发表于 2021-10-28 14:19:51 | 显示全部楼层
本帖最后由 idwma 于 2021-10-28 21:55 编辑
  1. @echo off
  2. color 1f
  3. call git --version 2>nul
  4. if %errorlevel% == 0 (
  5.     echo.
  6.     echo GIT 已安装
  7.     echo ______________________________
  8. ) else (
  9.     echo.
  10.     echo GIT 未安装, 开始安装
  11.     echo ______________________________
  12.    
  13.         start /w Git-2.33.0.2-64-bit.exe /VERYSILENT
  14.         cls
  15.         echo.
  16.         echo GIT 已安装
  17.     echo ______________________________
  18. )
  19. call npm --version 2>nul
  20. if %errorlevel% == 0 (
  21.     echo.
  22.     echo NPM 已安装, 继续执行
  23.     echo ______________________________
  24. ) else (
  25.     echo.
  26.     echo NPM 未安装, 开始安装
  27.     echo ______________________________
  28.    
  29.         start /w node-v13.14.0-x64.msi /passive /qr
  30.         cls
  31.         echo.
  32.         echo NPM 已安装, 按任意键退出后, 重新打开
  33.     echo ______________________________
  34. for /f "tokens=2*" %%i in ('reg query "hklm\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path') do set p=%%j
  35. for /f "tokens=2*" %%i in ('reg query "hkcu\environment" /v path') do set pp=%%j
  36. call;set path=%%p%%;%%pp%%
  37. )

  38. call yarn --version 2>nul
  39. if %errorlevel% == 0 (
  40.     echo.
  41.     echo Yarn 已安装
  42.     echo _________________________________________________________
  43. ) else (
  44.     echo.
  45.     echo Yarn 未安装, 开始安装
  46.     echo _________________________________________________________
  47.     call npm install -g yarn --registry=https://registry.npm.taobao.org

  48. )
  49. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
5i365 + 1 碉堡了, 牛X , 本以为无解了, 没想到还是被 ...

查看全部评分

发表于 2021-10-28 14:30:07 | 显示全部楼层
本帖最后由 xp3000 于 2021-10-28 14:34 编辑

我这里直接退出了,没有那些应用,你试试这个行不行
start /I /MIN cmd /k "MsiExec.exe /i node-v13.14.0-x64.msi /qn &timeout 10&&exit"
 楼主| 发表于 2021-10-28 14:49:21 | 显示全部楼层
回复 12# idwma


    感谢帮忙, 试了一下还是不行, 要手动打开三次才行, 以前是手动打开两次,
 楼主| 发表于 2021-10-28 14:50:29 | 显示全部楼层
回复 13# xp3000


    只试一个安装, 没有意义, 因为这个批处理, 前一个的安装是后一个安装的基础
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 04:30 , Processed in 0.045049 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表