首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一个批处理脚本调用批处理脚本

从另一个批处理脚本调用批处理脚本
EN

Stack Overflow用户
提问于 2012-10-26 21:56:02
回答 1查看 2.8K关注 0票数 0

好的,我在这方面发现了一些问题,但每个问题都是说确保在第二个bat文件中使用CALLexit \bgoto eof,但由于某些原因,我尝试了这两种方法,每次执行第一个调用语句之后,批处理文件都会退出:

批处理文件1 (myscript.bat):

代码语言:javascript
复制
:@echo off
del files
dir /B /O-D | find "test2" > tmp
dir /B /O-D | find "test3" > tmp2
CALL head 1 tmp > files
CALL head 1 tmp2 >> files

head.bat:

代码语言:javascript
复制
@echo off

if [%1] == [] goto usage
if [%2] == [] goto usage

call :print_head %1 %2
goto :eof

REM
REM print_head
REM Prints the first non-blank %1 lines in the file %2.
REM
:print_head
setlocal EnableDelayedExpansion
set /a counter=0

for /f ^"usebackq^ eol^=^

^ delims^=^" %%a in (%2) do (
        if "!counter!"=="%1" goto :eof
        echo %%a
        set /a counter+=1
)

goto :eof

:usage
echo Usage: head.bat COUNT FILENAME

处决:

C:\Users\ots>myscript.bat C:\Users\ots>del文件 C:\Users\ots>dir /B /O-D =查找"test2“1>tmp C:\Users\ots>dir /B /O-D =查找"test3“1>tmp2 C:\Users\ots>CALL头1 tmp 1>files C:\Users\ots>

如何让它运行第二条"tmp2“呼叫线?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-26 22:21:04

您的代码很好,这两个调用都确实进行了。

问题是您在head.bat中将echo设置为OFF,所以在第一次调用之后,您的命令不会在控制台上得到回显,但这并不意味着没有调用该文件。

要验证这一点,请从@echo off中删除head.bat,然后将看到第二个CALL命令。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13094973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档