批处理CALL,调用其他批处理子程序的用法

批处理CALL,调用其他批处理子程序的用法,第1张

我觉得问题出现在e的身上,如果你有学过C语言的话应该比较好理解。就是C只是在2.cmd这个文件中,作为里面的一陆改个局部的参数,调用了1.cmd,虽然在1.cmd里面做了早竖判运算,但运算的结果是没有传递出来的。所以e的值还是为0.就好像C要用return 把参数值传回来那样,又或者,如果e是一个全局变量的话,或许还行。不过在DOS里面我不知道有没有全纤源局变量这个概念。所以,你要实现这种值传递的话,恐怕,用批处理不是什么好的选择。如果你只是想学习一下call的调用的话,基本上你已经会了

后来想想,或许能用批处理中的errorlevel作为返回值。于是把你的批处理修改了一下,代码如下:

一、1.cmd

@echo off

set /a t=%1+1

set errorlevel=%t%

GOTO :EOF

二、2.cmd

@ECHO OFF

set /a e=0

call 1.cmd 22

set e=%errorlevel%

echo %e%

pause>nul

这样就实现了值传递了,如有需要,我们可以探讨一下,我的QQ:243488442

有些情况可备耐以用重定向,类穗滚源似ftp -s那样,比如

x.exe <x.txt

有些情况只能猜态用vbs模拟键盘输入,比如telnet

Dim wshshell

set wshshell=CreateObject("wscript.shell")

wscript.sleep 3000

WshShell.Run "telnet 192.168.1.100"

wscript.sleep 5000

wshshell.sendkeys "admin"

wshshell.sendkeys "{ENTER}"

wscript.sleep 1000

wshshell.sendkeys "admin123"

wshshell.sendkeys "{ENTER}"

@echo off

start /wait d:\1.bat

start /wait c:\2.bat

@echo off

call d:\1.bat

call c:\2.bat

start 是在新窗口运行调用的灶行文件隐毁哗,call是在当前的窗口运行。 start /wait是指启动应用程序并等待其结余凯束


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12503662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存