找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 51953|回复: 15

[文件操作] 【已解决】启动另一个bat的时候不想从头,只从中间某段开始执行代码可不可以?

[复制链接]
发表于 2021-11-29 09:29:46 | 显示全部楼层 |阅读模式
本帖最后由 aceamuro 于 2021-11-30 22:14 编辑

比如说我双击执行a.bat,内容是
  1. start "" "b.bat"
复制代码
b.bat的内容是
  1. :aaa
  2. echo aaa
  3. :bbb
  4. echo bbb
复制代码
这样的话就会显示aaa和bbb
可是假如我只想显示bbb,也就是启动b.bat时直接从:bbb开始执行,a.bat要怎么写?
发表于 2021-11-29 10:06:43 | 显示全部楼层
a.bat
  1. start "" "b.bat" "goto bbb"
复制代码
b.bat

  1. %~1
  2. :aaa
  3. echo aaa
  4. :bbb
  5. echo bbb
复制代码
 楼主| 发表于 2021-11-29 10:32:55 | 显示全部楼层
回复 2# flashercs
跳出一个窗口说:
'b.bat"  "goto' 不是内部或外部命令,也不是可运行的程序或批处理文件。
发表于 2021-11-29 11:57:00 | 显示全部楼层
a.bat
  1. start "title" %comspec% /c ""b.bat" "goto bbb""
复制代码
 楼主| 发表于 2021-11-29 14:19:10 | 显示全部楼层
回复 4# flashercs
试了一下,这样写b.bat还是从头运行的
发表于 2021-11-29 21:16:29 | 显示全部楼层
bat 之奇技淫巧:子程序继承主程序的标签名
a.bat
  1. @echo off
  2. call :bbb
  3. pause & exit/b

  4. :bbb
  5. b.bat
复制代码
b.bat
  1. @echo off
  2. :aaa
  3. echo;aaa
  4. exit/b

  5. :bbb
  6. echo;bbb
  7. exit/b
复制代码
发表于 2021-11-29 21:37:25 | 显示全部楼层
正确的方式如下
a.bat
  1. start "" "b.bat" "bbb"
复制代码
b.bat
  1. goto %1
  2. :aaa
  3. echo aaa
  4. pause
  5. :bbb
  6. echo bbb
  7. pause
复制代码
 楼主| 发表于 2021-11-29 22:06:37 | 显示全部楼层
回复 6# WHY 这个bbb打不开,本身不能作为代码运行
 楼主| 发表于 2021-11-29 22:07:46 | 显示全部楼层
回复 7# smss
还是跳出一个窗口,说:
'b.bat"  "bbb' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
发表于 2021-11-29 22:21:22 | 显示全部楼层
回复 8# aceamuro


    不明白你在说啥。
bbb 是标签名,a.bat 调用的标签名, b.bat 会调用同样的标签名。
 楼主| 发表于 2021-11-29 22:30:49 | 显示全部楼层
回复 10# WHY
口误,我想说的是你这个代码写入b.bat后,b.bat不能单独运行,我在结尾加上pause也看不到结果
发表于 2021-11-29 22:50:24 | 显示全部楼层
回复 11# aceamuro


    b.bat 仅仅是个示例,没啥实际意义。
用你自己的 b.bat 好了。

评分

参与人数 1技术 +1 收起 理由
aceamuro + 1 乐于助人

查看全部评分

 楼主| 发表于 2021-11-30 06:15:26 | 显示全部楼层
回复 12# WHY
怪我顶楼没说清楚,我的意思是像start命令那样调出另一个窗口同时运行,因为两个窗口可以增加运行效率,而且也可以以不同的权限运行b.bat。
这个call就相当于把bbb后面的代码直接贴到a.bat了,跟我原先的意思不太一样,抱歉没表述清楚……
发表于 2021-11-30 08:01:35 | 显示全部楼层
a.bat
  1. start b.bat
复制代码
b.bat
  1. if not exist "%~1" goto bbb
  2. :aaa
  3. echo aaa
  4. :bbb
  5. echo bbb
复制代码
为了更安全些可以创建一个信号:
a.bat
  1. start b.bat bbb
复制代码
b.bat
  1. if "%~1"=="bbb" goto bbb
  2. :aaa
  3. echo aaa
  4. :bbb
  5. echo bbb
复制代码
如果需要在相同窗口显示输出:
a.bat
  1. start/B b.bat bbb
复制代码
b.bat
  1. if "%~1"=="bbb" goto bbb
  2. :aaa
  3. echo aaa
  4. :bbb
  5. echo bbb
复制代码

评分

参与人数 1技术 +1 收起 理由
aceamuro + 1 会了,谢谢大佬

查看全部评分

发表于 2021-11-30 21:55:25 | 显示全部楼层
回复 13# aceamuro


     bat 之奇技淫巧系列
a.bat
  1. start "" cmd /k; "b.bat" "goto :bbb"
复制代码
b.bat
  1. %~1
  2. :aaa
  3. echo aaa
  4. :bbb
  5. echo bbb
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 21:46 , Processed in 0.043665 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表