gpt4 book ai didi

for-loop - 带星号的批处理 FOR 循环

转载 作者:行者123 更新时间:2023-12-02 03:53:27 24 4
gpt4 key购买 nike

我有这个单行 CMD 文件 TEST.CMD:

for %%f in (%1 %2 %3 %4 %5 %6 %7 %8) DO ECHO %%f

如果我运行这个:

TEST this is a test

它正确地在单独的行上回显了每个参数,即

this
is
a
test

但是,如果参数包含星号,它会跳过它。例如,

TEST this is a* test

结果:

this
is
test

如何让带星号的参数像普通 token 一样对待?

谢谢。

最佳答案

适用于大多数参数的最简单方法是将参数传输到一个变量“数组”,然后使用 FOR/L 循环遍历该数组。这最好通过延迟扩展来实现。

该技术可以处理任意数量的参数——不限于 9 个。

@echo off
setlocal

:: Transfer parameters to an "array"
set arg.cnt=1
:getArgs
(set arg.%arg.cnt%=%1)
if defined arg.%arg.cnt% (
set /a arg.cnt+=1
shift /1
goto :getArgs
)
set /a arg.cnt-=1

:: Process the "array"
setlocal enableDelayedExpansion
for /l %%N in (1 1 %arg.cnt%) do echo arg %%N = !arg.%%N!

关于for-loop - 带星号的批处理 FOR 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13609760/

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