帮忙解释一下一个批处理问题

来源:百度知道 编辑:UC知道 时间:2024/05/12 20:46:29
C:根目录下有一批处理文件名为f.bat,内容为:
@echo off
format %1

如果执行C:\>f a:
那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a:

想问的是在上面的批处理中并没有C:\>f a: ,怎么会说 如果执行C:\>f a:
那么在执行f.bat时,%1就表示a:,

批处理可以带参数运行命令,
f.bat 第一个参数 第二个 第三个.....
最多可以设置9个参数,每个参数之间用空格隔开,带上参数运行后,那么批处理的命令中%1就等同于第一个参数,%2就等同于第二个,依此类推..

比喻:如果批处理中有个echo %1,运行出来后,就是显示"第一个参数",如果是echo %*就是显示所有的参数..
另个批处理有个另外的参数%0,这参数有两层意思:
1,代表当前批处理路径,就好比你这批处理,%0就是c:\f.bat
2,回到起始位置反复执行,例如:
@echo off
echo 11111
%0
这个批就会反复执行显示1111....

你理解错误了,不是f.bat里面包含f %1,但确实在F.bat里面有一个%1,这是形式参数。实际传送给它实参a:
f a: ,f.bat接收到了a:作为%1,将批处理里面的%1用a:来替代。
%1是参数,就是用另外一个批处理来调用或则直接在dos中的话:只下面一个句子
f a:
那么这个命令表示了执行相同目录下面的f程序 并且传递了一个参数a:,
f %1就是解释了。a:直接对应于这个 %1的。

其他批处理在结束时候还有一个参数%0,就是批处理本身了
所以执行del /f %0,这个是