gpt4 book ai didi

windows - 在 Windows 批处理中计算 Var

转载 作者:可可西里 更新时间:2023-11-01 10:38:29 26 4
gpt4 key购买 nike

在我的批处理文件中,我有以下变量:

set collection=collection1
set environment=oracleDev
set processChain1=-help,-startimport %environment% %collection%

如您所见,我的流程链包含两个用“,”分隔的字符串。

现在我想计算两个字符串(稍后它可能不止一个字符串)。我试过:

Set count=0
For %%j in (%%processChain1%%) Do Set /A count+=1
echo %count%

但是有第一个错误。它打印出 1 而不是 2。为什么?

在计算完字符串后,我想用每个参数启动一个应用程序(来自变量 processChain1 的字符串)我尝试使用:

FOR /L %%G IN (1,1,%count%) DO (
FOR /F "tokens=%count% delims=," %%H IN ("%processChain1%") DO java -jar App.jar %%H
)

这现在不能正常工作,因为第一个错误导致计数器错误。但我认为如果我能解决第一个问题,那么第二个应该可以正常工作。这是正确的吗?

最佳答案

据我所知,现在,计数为 1,因为该 var 中只有一个字符串,您稍后进行拆分,但您的 token 计数已设置为 1....

您需要拆分第一个字符串 (delims=,),然后在第二部分中处理每个结果。

已编辑:

试试这个……

@echo off
set collection=collection1
set environment=oracleDev
set processChain1="-help" "-startimport %environment% %collection%"

Set count=0
For %%j in (%processChain1%) Do Set /A count+=1
echo.Total count: %count%
pause

如您所见,我更改了 var processChain1 结构以使用空格(默认定界符)分隔值并将每个 var 放在引号中...至少它有效,并为您提供了总数。

当然,前提是你可以这样使用它。

希望对您有所帮助。干杯。

如果没有.. 看看这里,也许有帮助:separate tokens in batch file

祝你好运


EDITED 2(匹配新信息)

批处理文件:Metalhead89.bat

@echo off
:: define the vars
set collection=collection1
set environment=oracleDev
:: concatenate the vars with ++
set processChain1=-help -startimport++%environment%++%collection%

:: Get the total count plus, run each token found
Set count=0
For %%j in (%processChain1%) do (
Set /A count+=1
set line=%%j
call :processToken
)
:: This will be printed out, at the end of the loop
echo Total token count: %count%
goto :eof

:processToken
for /f %%f in ("%line%") do (
:: set the command var with your exe file for each token found
set command=Running command: java -jar app.jar %%f
call :runTheCommand
)
goto :eof

:runTheCommand
:: now we replace the doble ++ in the var string with space, to treat them as options
set str=%command%
set str=%str:++= %
:: finally we do a echo of the command with the option included
echo %str%
goto :eof

现在,从命令行调用该文件,您将得到:

Z:\>call Metalhead89.bat
Running command: java -jar app.jar -help
Running command: java -jar app.jar -startimport oracleDev collection1
Total token count: 2

祝你好运;-)

关于windows - 在 Windows 批处理中计算 Var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12068698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com