Windows批处理脚本陷入死循环问题


Windows批处理脚本陷入死循环问题



现象
bat脚本内容十分简单,就一条命令:
start cmd
本意是执行bat脚本,就会弹出cmd窗口。看似很简单的一件事,但是出现了超出意料的事情。
双击刚编写的脚本后,windows就出现了死循环现象,cmd窗口一直不停的弹出,根本无法关闭,最后强制关机。

原因分析
出现死循环的原因在于bat脚本的命名上,bat脚本以cmd.bat命名。双击包含start cmd命令的脚本,该命令会首先找到cmd.bat文件,然后再去执行cmd.bat文件,而该文件中的内容恰好又是start cmd,于是又去找到cmd.bat文件,然后执行cmd.bat文件。以此类推,就出现了命令反复调用本身的现象,从而出现了死循环。
解决方法也很简单,将脚本文件名称改成cmd以外的其他名称即可。如:将脚本文件重命名为打开cmd.bat,再次执行bat脚本就不会出现死循环问题了。

参考

原文地址:https://www.cnblogs.com/hai-feng/p/12359134.html

时间: 2024-10-15 21:56:50

Windows批处理脚本陷入死循环问题的相关文章

Windows 添加计划任务 每隔一定时间执行指定批处理脚本

schtasks /create /sc minute /mo 20 /tn "TestBatch" /tr C:/TestBatch.bat TestBatch.bat echo "---------------------批处理开始------------------------------"ping sz.tencent.com > D:/a.txtping sz1.tencent.com >> D:a.txtping sz2.tencent

Windows 下使用ftp批处理脚本

交互命令下FTP 一般状况下, 我们使用FTP 到某台机器上进行文件上传.下载的操作, 在命令方式下,基本上是: 1.ftp  主机名 2.输入用户名 3. 输入密码 4. 切换模式(asc 或者是 bin) 5. 上传或下载(put 或者是 get) 6. 退出(bye  or quit) 如果使用一些FTP 工具的话, 操作起来就更简单了. ftp 批处理脚本 如果我们要定期的自动做一些FTP的动作的话, 可以写一个批处理档, 放到Windows 的Task 中定期执行. 这种思路的一般解法

[windows]快速从ftp下载最新软件包的批处理脚本

背景 由于敏捷开发,快速迭代,我们项目一天会有三个版本,也就意味着我一天要去获取三次软件包.我负责服务端开发,所以我经常需要去拿最新的客户端.我们的客户端放置在一个公共的ftp上面.每天频繁登陆ftp下载,或者使用ftp工具,每次都要点击同步,都不太方便.如果在linux下就好了,然而在windows也是可以运行脚本的,何不尝试下呢. 完整代码 1 @echo off 2 rem for download file 3 rem ftp config 4 rem ip login_name pas

Windows自动删除n天前的文件的批处理脚本

数据库每天备份文件,然而只需要保留七天的备份即可,编写一个批处理脚本文件自动删除七天前的文件并设置定时任务 自动删除文件需要用到forfiles命令 forfiles参数:/p 指定的路径/s 包括子目录/m 查找的文件名掩码/d 指定日期,有绝对日期和相对日期, 此处-7指当前日期 的7天前   /c 运行的命令行   表示为每个文件执行的命令.命令字符串应该用双引号括起来. 默认命令是 "cmd /c echo @file".下列变量 可以用在命令字符串中: @file    -

转】windows下使用批处理脚本实现多个版本的JDK切换

原博文出自于: http://www.cnblogs.com/xdp-gacl/p/5209386.html 感谢! 一.JDK版本切换批处理脚本 我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,这时候我们可能会在一台电脑上安装多个版本的JDK,如下图所示: 当我们想要切换使用的JDK版本时,我们可以有两种做法: 1.手动去修改JAVA_HOME环境变量,将变量的值指向对应的JDK版本的安装目录即可. 2.通过编写批处理脚本来根据选

DOS批处理脚本

先概述一下批处理是个什么东东.批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----我是个菜鸟,当然就更不用说了:但我想总结出一个"比较合适的",而且我也相信自己可以把它解释的很清楚,让更多的菜鸟都知道这是个什么东东,你用这个东东可以干什么事情.或许你会因为这篇文章而"无条件爱上批处理",那么我的目的就达到了----我就是要让你爱上它,我就这么拽,你能怎么着??真的,爱有时候就这么拽,就是这么没理由

【学会偷懒】00. 用批处理脚本启动软件

# 本系列针对零基础和非业内的同学,介绍下我常用的.可能对很多人也有用的偷懒方法和思路 本篇是第1篇,特意讲得非常浅,手把手的讲解,感到智商被侮辱了的同学可跳过相应段落 这系列的总体思路 做人不能太勤快 凡是机械重复的工作,只要ROI(投资回报率)划算,考虑交给机器 成本包括时间成本和风险成本,收益包括节省时间做更重要的事.心情变好和个人成长 这里只讨论自己偷懒,不适合直接套用在组织要不要做自动化的问题上 同样的事不要用同样的方法做3遍 3是虚指 什么是“同样的事”可能一点也不显而易见 发现问题

BAT 批处理脚本教程

第一章 批处理基础第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令.小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程.了解了大概意思后,我们正式开始学习.先看一个简单的例子!@echo offecho "欢迎来到非常BAT!"pause把上面的3条命令保存为文件test.bat或者test.cmd然后执行,他就会在屏幕上显示以下二行话:欢迎来到

BAT 批处理脚本教程(如果可以用电脑让事情变的更简单,何不让它变得更简单呢!)

第一章 批处理基础 第一节 常用批处理内部命令简介批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令. 小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程. 了解了大概意思后,我们正式开始学习.先看一个简单的例子! @echo off echo "欢迎来到非常BAT!" pause 把上面的3条命令保存为文件test.bat或者test.cmd然后执行, 他就会在屏幕上显示以下二