批处理一闪即退的解决办法.doc

批处理一闪即退的解决办法.doc

ID:59355969

大小:85.50 KB

页数:5页

时间:2020-09-04

批处理一闪即退的解决办法.doc_第1页
批处理一闪即退的解决办法.doc_第2页
批处理一闪即退的解决办法.doc_第3页
批处理一闪即退的解决办法.doc_第4页
批处理一闪即退的解决办法.doc_第5页
资源描述:

《批处理一闪即退的解决办法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、批处理文件名中包含“&”、“^”此问题在Win7、Win8中都会出现,具体表现为使用右键以管理员身份运行时批处理一闪即逝,双击运行则正常。这个问题是本人在10年12月发现的,应该是Windows的一个BUG,当时还发了几条微博。假设文件名为“A&B.bat”,系统会认为“&”前后是两条语句,所以会执行“A”和“B.bat”。假设文件名为“A^B.bat”,系统会忽略“^”,所以实际上运行的是“AB.bat”。但是一般情况下当前文件夹中并没有“A”、“B.bat”、“AB.bat”这几个文件,于是就自动退出了。这里说明一下,运行“A”时,系统不会运行无扩展名

2、的“A”,而是会按照环境变量%PATHEXT%里面的值“.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC”按顺序进行查找“A.COM”、“A.EXE”……为此我们可以进行验证,在某个文件夹中新建这6个文件A、A&B.bat、A.bat、A^B.bat、AB.bat、B.bat。除A&B.bat和A^B.bat外,内容均为12@Echo%~nx0@Pause其中%~nx0表示当前批处理文件(0)的文件名(n)及扩展名(x)。A&B.bat和A^B.bat需要把%~nx0换成A^&B.bat和A^^B.ba

3、t,因为“&”和“^”都需要转义才能显示。双击直接运行A&B.bat:右键管理员身份运行A&B.bat:你还可以将A.bat、B.bat删除其中一个或者都删除再看看运行结果,我就不截图了。A^B.bat的结果和A&B.bat类似,也不截图了。二、环境变量%PATH%有问题批处理中调用了系统目录下的程序,但是PATH有问题导致找不到文件。这个问题的起因,可能是你手工修改失误,也可能是安装了什么软件对PATH进行了修改,最常见的是MacType这个软件。虽然FlyingSnow说MacType的这个BUG早已修复,但是本人Win7x64亲测这个BUG在目前最新版2

4、010.1231.0中依然存在,之前没有安装过任何旧版本MacType。目前导致这个问题的具体原因还不太清楚,因为PATH看上去是正确的,一种可能有效的解决办法是在PATH最后加一个“;”再保存,如果不行可以再把最后的“;”删掉再保存。三、批处理本身编写有误拼写错误、忘记加pause这些低级错误我就不说了。说一个稍微高级一点儿的关于for的错误。在批处理中for语句的变量都要写两个%,比如%%i,而在CMD中只需一个,这是一个比较容易出错的地方,如果在批处理中写成了%i,在运行到这条语句时就会提示错误然后自动退出。下面介绍一种方法可以看到一闪即逝的错误,方便找

5、到原因:先Win+R打开运行窗口,输入CMD回车,打开CMD窗口,然后将批处理文件拖入CMD窗口,此时文件的路径会出现在屏幕上,然后按回车即可。当然为了方便你也可以为bat文件添加一个右键菜单,具体步骤我就不讲了,Google有的是,命令行这样写1"C:WindowsSystem32cmd.exe"/k"%1"四、CMD被禁用这个问题一般不会导致一闪即逝,而是会提示“命令提示符已被系统管理员停用”。既可以在组策略中修改也可以在注册表中修改·组策略中的位置:Win+R打开运行窗口输入gpedit.msc回车打开组策略左侧选择用户配置–管理模板–系统,然后右

6、侧找到“阻止访问命令提示符”,选择未配置即可·注册表中的位置:DisableCMD键值的位置在HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsSystemDisableCMD为1表示禁用命令提示符和批处理文件,2表示只禁用命令提示符,改成0或者删除就可以解禁了UPDATE:如果修改后依然提示被禁用,可能是你中过病毒,修改了注册表HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsSaferCodeIdentifiersPaths{40

7、3cf677-e149-45df-bf2d-b320958e5ada}里面内容为·LastModified=AA7A5905D22CCC01·Description=“”·SaferFlags=0×00000000·ItemData=“cmd.exe”将这个项{403cf677-e149-45df-bf2d-b320958e5ada}整个删除即可感谢群友无影的反馈如果你还遇到其他情况,请告诉我s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。