一天一篇批处理之——Part8: 自动循环语句与位置命令%~dp0

一天一篇批处理之——Part8: 自动循环语句与位置命令%~dp0


一,自动循环运行特定程序:
例1.1
@echo off
:P
ping 10.0.0.48
if not %errorlevel% EQU 0 goto P
echo主机10.0.0.48可以正常ping通
pause
这段命令作用是ping指定的主机(10.0.0.48),命令会一直循环运行直到ping通该主机,“:P” 与后面的”goto P”组成循环,if not语句用于判断,若成立则返回”:P”处运行;直至返回值“errorlevel”等于0则结束。
Ping:测试网络联接状况以及信息包发送和接收的状况,利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。
errorlevel:程序返回码,用于判断刚才的命令是否执行成功,默认值为0,一般命令执行出错会设 errorlevel 为1
EQU:等于,即equal的缩写,同样表示大小关系的还有NEQ不等于,LSS小于,LEQ小于或等于,GTR 大于,GEQ大于或等于。


二,当前文件%0与当前文件所在路径%~dp0:
例2.1
@echo off
echo 当前盘符:%~d0
echo 当前盘符和路径:%~dp0
echo 当前盘符和路径的短文件名格式:%~sdp0
echo 当前批处理全路径:%~f0
echo 当前批处理文件:%0
echo 当前CMD默认目录:%cd%
pause
显示:
当前盘符:E:
当前盘符和路径:E:\file2\
当前盘符和路径的短文件名格式:E:\file2\
当前批处理全路径:E:\file2\file2.bat
当前批处理文件:”E:\file2\file2.bat”
当前CMD默认目录:E:\file2
这里需要注意%0与%~f0的区别
下面区分一下%cd%与%~dp0
例2.2
@echo off
echo this is %%cd%% %cd%
echo this is %%~dp0 %~dp0
pause
将以上命令保存为file2.bat文件保存在D:盘目录下
在CMD中E:盘运行时如下:
E:\>D:\file2.bat(输入后按enter运行)
this is %cd% E:\
this is %~dp0 D:\
即%cd%表示的是文件运行的启动位置,而%~dp0表示的是文件所在的位置。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值