DOS批处理几点说明

1. %* 用法

用于传递参数给批处理文件中的命令或批处理

例1. 批处理文件 test.bat, 内:

dir %*

命令:

D:/temp>setupCmdLine.bat "e:/test"

结果:
D:/temp>dir "e:/test"
 驱动器 E 中的卷没有标签。
 卷的序列号是 5EF3-A7A1

 e:/test 的目录

2010-09-14  14:27    <DIR>          .
2010-09-14  14:27    <DIR>          ..
2010-09-14  14:27    <DIR>          mytest
2010-09-14  14:27    <DIR>          webservice
               0 个文件              0 字节
               4 个目录  5,349,498,880 可用字节

例2. 批处理文件test.bat内容:

for %%P in ( %* ) do echo %%P

命令:

D:/temp>test "e:/test" "e:/test2" "e:/temp"
结果:
D:/temp>for %P in ("e:/test" "e:/test2" "e:/temp") do echo %P

D:/temp>echo "e:/test"
"e:/test"

D:/temp>echo "e:/test2"
"e:/test2"

D:/temp>echo "e:/temp"
"e:/temp"

 

 

2. pause 自定义提示消息

pause命令执行后一般出现 "按任意键继续..." 字样,可以使用下面的手段定义消息:

@echo 使用我自己定义的消息

pause > nul

 

3. cd 命令

/d参数, 可以切换包括盘符的路径

命令:

D:/temp>cd /d "e:/test"

结果:

E:/test>

 

4. %cd%指当前路径

例:

命令:

C:/Documents and Settings/Administrator>echo %cd%

结果:
C:/Documents and Settings/Administrator

 

5. %0, %1, %2, %n

%0指批处理文件本身

%1指批处理文件第一个参数

%2指批处理文件第二个参数

例:文件 test.bat内容入下:

echo %%0=%0
echo %%1=%1
echo %%2=%2

命令:

D:/temp>setupCmdLine.bat param1 param2

结果:

D:/temp>echo %0=setupCmdLine.bat
%0=setupCmdLine.bat

D:/temp>echo %1=param1
%1=param1

D:/temp>echo %2=param2
%2=param2

 

6. %%

对%的转义,即作为%字符本身输出?

如上面的例子,将test.bat内容修改如下:

echo %0=%0
echo %1=%1
echo %2=%2

命令:

D:/temp>setupCmdLine.bat param1 param2

结果:

D:/temp>echo setupCmdLine.bat=setupCmdLine.bat
setupCmdLine.bat=setupCmdLine.bat

D:/temp>echo param1=param1
param1=param1

D:/temp>echo param2=param2
param2=param2

 

7. %~dp0

即对%0进行处理,去掉引号

%~d0  去引号,取盘符

例1. 批处理文件test.bat内容:

echo %1
echo %~d1
echo %~dp1

命令:

d:/temp>test "e:/test"

结果:

D:/temp>echo "e:/test"
"e:/test"

D:/temp>echo e:
e:

D:/temp>echo e:/
e:/

 

例2.

命令:

d:/temp>test "e:/test/"

结果:

D:/temp>echo "e:/test/"
"e:/test/"

D:/temp>echo e:
e:

D:/temp>echo e:/test/
e:/test/  (注意这里的区别,test/被加了进来)

 

例3.

test.bat内容:

@echo %1
@echo %~d1
@echo %~dp1
@echo %~dpn1

命令:

D:/temp>setupCmdLine.bat "e:/test/test.dat"
结果:
D:/temp>SET CUR_DIR=D:/temp
"e:/test/test.dat"
e:
e:/test/
e:/test/test
e:/test/test.dat


d-取盘符; p-取路径; n-取文件名

 

命令参考:

~I - 删除任何引号("),扩充 %I
%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/时间
%~zI - 将 %I 扩充到文件的大小


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值