设为首页 - 加入收藏 PHP编程网 - 黄冈站长网 (http://www.0713zz.com)-创业,推广,IT,移动互联,VR,5G,小程序,站长网!
热搜: vivo 网站 什么 1
当前位置: 首页 > 服务器 > 系统 > 正文

windows – 批处理脚本传递多个参数进行调用

发布时间:2021-03-05 17:47 所属栏目:[系统] 来源:网络整理
导读:我编写了一个脚本,其中包含一个函数,该函数应循环遍历列表并返回给定所述列表中项目索引的值.我有一个名为:: find的函数应该采用2个参数:列表和项目位置.我不确定如何处理函数中的多个参数.如果我在循环中用%MY_LIST%替换%LIST%并且从参数列表中删除

我编写了一个脚本,其中包含一个函数,该函数应循环遍历列表并返回给定所述列表中项目索引的值.我有一个名为:: find的函数应该采用2个参数:列表和项目位置.我不确定如何处理函数中的多个参数.如果我在循环中用%MY_LIST%替换%LIST%并且从参数列表中删除%MY_LIST%,则该脚本运行正常,并将其传递给call:find,但我真的想知道如何传递多个参数.我认为它们只是作为整个字符串传递给函数…

@echo off
setlocal enableDelayedExpansion
cls

:: ----------------------------------------------------------
:: Variable declarations
:: ----------------------------------------------------------
set RETURN=-1
set MY_LIST=("foo" "bar" "baz")
set TARGET_INDEX=1

:: ----------------------------------------------------------
:: Main procedure
:: ----------------------------------------------------------
call :log "Finding item %TARGET_INDEX%..."
call :find %MY_LIST% %TARGET_INDEX%
call :log "The value is: %RETURN%"
goto Exit

:: ----------------------------------------------------------
:: Function declarations
:: ----------------------------------------------------------
:find
call :log "Called `:find` with params: [%*]"
set /a i=0
set LIST=%~1 & shift

for %%a in %LIST% do (
    if !i! == %~1 (
        set RETURN=%%a
    )
    set /a i=!i!+1
)
goto:EOF

:printDate
for /f "tokens=2-4 delims=/ " %%a in ('echo %DATE%') do (
  set mydate=%%c/%%a/%%b)
for /f "tokens=1-3 delims=/:./ " %%a in ('echo %TIME%') do (
  set mytime=%%a:%%b:%%c)
echo|set /p="[%mydate% %mytime%] "
goto:EOF

:log
call :printDate
echo %~1
goto:EOF

:: ----------------------------------------------------------
:: End of script
:: ----------------------------------------------------------

:Exit

更新

我的脚本现在运行正常;感谢nephi12. http://pastebin.com/xGdFWmnM

解决方法

call :find "%MY_LIST%" %TARGET_INDEX%
goto :EOF

:find
echo %~1 %~2
goto :EOF

它们与args一样传递给脚本…;)

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章
热点阅读
随机内容