标题: [文件操作] 【已解决】在批处理中调用改变之后的批处理?怎么做? [打印本页]
作者: 小麦 时间: 2011-9-27 01:08 标题: 【已解决】在批处理中调用改变之后的批处理?怎么做?
本帖最后由 小麦 于 2011-10-2 23:33 编辑
一般在批处理中运行批处理用START **.BAT 就行了 但是如果只想在批处理中调用其中的一部分呢?而且这部分有变量。该怎么样才能调用已经改变的这部分?下面这段批处理不是我的目的:- @ECHO OFF
- ECHO 输入要PING的IP
- SET /P A=
- PING %A%
- ECHO 输入要PING此IP的次数
- SET /P B=
- FOR /L %%I IN (1,1,%B%)DO START 1.bat
复制代码
把上面这段代码保存为1.bat .打开后,输入IP,输入次数(比如2次) 恩,第一次很好;但第二次要求你重新输入IP。 而 我想再次调用此批处理中已输好的 PING %A% 而不要求重新输入要PING的IP 怎么能够做到?
以上是我的不懂之处。
看了下面的帖子 指导 ,我发现,实现这个功能挺简单。 :
把其中的 PING %A% 去掉;
把DO后面的 START 1.bat 改为 ping %A% 。
ok,大功告成!!
作者: CrLf 时间: 2011-9-27 08:53
传递参数 %1
作者: 601997526 时间: 2011-9-27 10:32
如果是在同一个批里,可以试试用call命令
作者: 小麦 时间: 2011-9-29 23:31
回复 3# 601997526
可不可以具体讲一下 ?? 代码??
作者: ArdentMan 时间: 2011-9-29 23:48
本帖最后由 ArdentMan 于 2011-9-29 23:56 编辑
- @Echo Off
- If "%~1" NEQ "" Goto Next
- Set /P IP=请输入IP:
- Start %~fs0 %IP%&Exit
- :Next
- Set /P Num=请输入要拼的次数:
- Ping /n %Num% %1
- Pause>Nul&Exit
复制代码
作者: 601997526 时间: 2011-9-30 09:08
回复 4# 小麦
如果LZ只是想让ping命令多工作一会,用/n就已经完全能实现了
但如果是想调用其中的一部分,用call可以这样写- @ECHO OFF
- ECHO 输入要PING的IP
- SET /P A=
- ECHO 输入要PING此IP的次数
- SET /P B=
- FOR /L %%I IN (1,1,%B%)DO call :ping
- :ping
- ping /n 1 %a%
复制代码
作者: 小麦 时间: 2011-10-2 23:02
回复 6# 601997526
哦 谢谢 !
作者: 小麦 时间: 2011-10-2 23:44
回复 5# ArdentMan
直接这个 容易些:
@Echo Off
Set /P Ip=要PING的ip是:
Set /P Num=请输入要拼的次数:
Ping /n %Num% %Ip%
这个批处理,对我来说,很新鲜。因为我都不知道某些命令。比如"%~1" NEQ %~fs0 % 能详细讲一下用法吗?? 因为可能在别的功能中有用。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |