标题: [文件操作] 【已解决】启动另一个bat的时候不想从头,只从中间某段开始执行代码可不可以? [打印本页]
作者: aceamuro 时间: 2021-11-29 09:29 标题: 【已解决】启动另一个bat的时候不想从头,只从中间某段开始执行代码可不可以?
本帖最后由 aceamuro 于 2021-11-30 22:14 编辑
比如说我双击执行a.bat,内容是复制代码
b.bat的内容是- :aaa
- echo aaa
- :bbb
- echo bbb
复制代码
这样的话就会显示aaa和bbb
可是假如我只想显示bbb,也就是启动b.bat时直接从:bbb开始执行,a.bat要怎么写?
作者: flashercs 时间: 2021-11-29 10:06
a.bat- start "" "b.bat" "goto bbb"
复制代码
b.bat- %~1
- :aaa
- echo aaa
- :bbb
- echo bbb
复制代码
作者: aceamuro 时间: 2021-11-29 10:32
回复 2# flashercs
跳出一个窗口说:
'b.bat" "goto' 不是内部或外部命令,也不是可运行的程序或批处理文件。
作者: flashercs 时间: 2021-11-29 11:57
a.bat- start "title" %comspec% /c ""b.bat" "goto bbb""
复制代码
作者: aceamuro 时间: 2021-11-29 14:19
回复 4# flashercs
试了一下,这样写b.bat还是从头运行的
作者: WHY 时间: 2021-11-29 21:16
bat 之奇技淫巧:子程序继承主程序的标签名
a.bat- @echo off
- call :bbb
- pause & exit/b
-
- :bbb
- b.bat
复制代码
b.bat- @echo off
- :aaa
- echo;aaa
- exit/b
-
- :bbb
- echo;bbb
- exit/b
复制代码
作者: smss 时间: 2021-11-29 21:37
正确的方式如下
a.bat复制代码
b.bat- goto %1
- :aaa
- echo aaa
- pause
- :bbb
- echo bbb
- pause
复制代码
作者: aceamuro 时间: 2021-11-29 22:06
回复 6# WHY 这个bbb打不开,本身不能作为代码运行
作者: aceamuro 时间: 2021-11-29 22:07
回复 7# smss
还是跳出一个窗口,说:
'b.bat" "bbb' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
作者: WHY 时间: 2021-11-29 22:21
回复 8# aceamuro
不明白你在说啥。
bbb 是标签名,a.bat 调用的标签名, b.bat 会调用同样的标签名。
作者: aceamuro 时间: 2021-11-29 22:30
回复 10# WHY
口误,我想说的是你这个代码写入b.bat后,b.bat不能单独运行,我在结尾加上pause也看不到结果
作者: WHY 时间: 2021-11-29 22:50
回复 11# aceamuro
b.bat 仅仅是个示例,没啥实际意义。
用你自己的 b.bat 好了。
作者: aceamuro 时间: 2021-11-30 06:15
回复 12# WHY
怪我顶楼没说清楚,我的意思是像start命令那样调出另一个窗口同时运行,因为两个窗口可以增加运行效率,而且也可以以不同的权限运行b.bat。
这个call就相当于把bbb后面的代码直接贴到a.bat了,跟我原先的意思不太一样,抱歉没表述清楚……
作者: wudi61600963 时间: 2021-11-30 08:01
a.bat复制代码
b.bat- if not exist "%~1" goto bbb
- :aaa
- echo aaa
- :bbb
- echo bbb
复制代码
为了更安全些可以创建一个信号:
a.bat复制代码
b.bat- if "%~1"=="bbb" goto bbb
- :aaa
- echo aaa
- :bbb
- echo bbb
复制代码
如果需要在相同窗口显示输出:
a.bat复制代码
b.bat- if "%~1"=="bbb" goto bbb
- :aaa
- echo aaa
- :bbb
- echo bbb
复制代码
作者: WHY 时间: 2021-11-30 21:55
回复 13# aceamuro
bat 之奇技淫巧系列
a.bat- start "" cmd /k; "b.bat" "goto :bbb"
复制代码
b.bat- %~1
- :aaa
- echo aaa
- :bbb
- echo bbb
复制代码
作者: WHY 时间: 2021-11-30 22:01
start 默认启动的是 cmd /k,如果前后带引号,它会消除前后的引号。
加分号(;)可以解除限制(分号、逗号都是默认的命令分隔符)。
cmd /?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |