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

批处理文件不能起什么样的文件名?

[复制链接]
发表于 2011-12-1 16:11:22 | 显示全部楼层 |阅读模式
下面这个代码保存为ping.bat做文件名时无法正常运行。
存为ping.bat
  1. ping 192.168.0.1
  2. pause
复制代码
刚开始我以为是电脑中毒什么的,就进行全盘扫描,结果一个病毒都扫不出来。
然后又重新安装了操作系统,故障依旧。
于是,我就百度,谷歌,论坛四处搜索,却怎么都找不到此类关相的问题。
就在绝望之际,随手把文件名改成1.bat,结果......         运行完全正常
今天在论坛发贴,只是想问一下,平时在给ba起文件名时都要注意些什么,不能起哪些名字。
现在只知道不能用

ping.bat

希望楼下接贴,给出其它不可以使用的文件名......
发表于 2011-12-1 16:45:29 | 显示全部楼层
只要不使用bat代码中使用的命令作文件名都应该可以,否则会陷入死循环。
比如你代码是
dir/b *.*
find "abc" a.txt
那么你的文件名就不能是 dir 或 find
 楼主| 发表于 2011-12-2 08:42:33 | 显示全部楼层
谢谢   for
发表于 2011-12-2 14:16:04 | 显示全部楼层
准确来说是“不要用外部命令来命名批处理文件”
dir.bat
  1. @echo off
  2. dir *.txt
  3. pause>nul
复制代码
这里不会循环,因为dir是内部命令。
 楼主| 发表于 2011-12-2 14:59:12 | 显示全部楼层
本帖最后由 BAT1 于 2011-12-2 15:04 编辑

二楼说  “只要不使用bat代码中使用的命令作文件名”
dir.bat
  1. dir *.txt
  2. echo 现在代码中用了dir 也可以正常运行!
  3. pause
复制代码
四楼说  “不要用外部命令来命名批处理文件”
ping.bat
  1. echo 现在用了ping也可以运行!
  2. pause
复制代码
本来想理清思路的,结果现在思路越理越混乱了。
发表于 2011-12-2 15:20:43 | 显示全部楼层
准确的说是不要使用bat中使用的外部命令作bat的文件名
比如你的代码是
@echo off
findstr "abc" a.txt
pause
如果文件名是 findstr 则不行
如果代码是
@echo off
find "abc" a.txt
pause
那么文件名就不能是 find 但可以是 findstr
bat运行命令时时,会先在bat所在目录寻找该命令名的可执行文件,如:cmd、bat、exe等等。。。
以第一个例子为例,当运行findstr命令时,bat会先在所在目录找寻文件名为findstr的可执行文件,而你的文件名若是 findstr.bat 那么 就不会执行findstr "abc" a.txt语句,而是执行findstr.bat了,如此反复形成死循环,若所在目录没有名为findstr的可执行文件,则会到path变量中去寻找,若有则执行,若还没有,则会显示findstr不是内部或外部命令。。。
 楼主| 发表于 2011-12-2 15:31:15 | 显示全部楼层
回复 6# FOR


    知道了原因就好办了,把里面的代码连后缀名一起打进去就行了。
文件名用 ping.bat
  1. ping.exe 192.168.0.1
  2. pause
复制代码
发表于 2011-12-3 16:53:58 | 显示全部楼层
还有不要用&作为脚本名
比如一些很特殊的很恶心的文件名:
  1. &for %a in (t e s t) do md %a&rem.bat
复制代码
还有一个更好玩的:(要求 %homedrive% 为 c:)
  1. &cls&@set;c=b&echo;b&(for;%a;in;(a;t;h;o;m;e)do;@doskey&cls&call;call;set;c=%;%^homedrive%%;c%=%;c%%a%&call;echo;%;c%)&pause.bat
复制代码
用了不少技巧来构造这个文件名,在双击(执行脚本内容)和调用时(执行文件名内容)的效果不同...
发表于 2011-12-5 04:36:32 | 显示全部楼层
简单的说,应该是保留字吧,由其是在PATH下,当然还有一些其它的一类乱码名,畸形文件等
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 11:33 , Processed in 0.018674 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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