gpt4 book ai didi

batch-file - 跳过=!计数!在 windows(7) 批处理文件中不起作用

转载 作者:行者123 更新时间:2023-12-03 09:35:33 28 4
gpt4 key购买 nike

在 for 循环中我检查了条件,如果条件为真我设置了计数值并跳过文件中的一些行,

           @echo off
SetLocal EnableDelayedExpansion
set /a count=0
set for_parameters="skip=!count! delims="
for /f %for_parameters% %%a in ('list.txt') do (
echo %%a
if %%a==Exception: (
set /a count+=2
)
)
Endlocal

Its shows delims=" was unexpected at this time. Error

谁能帮我解决这个问题.....

最佳答案

jeb 所说的延迟扩展和 FOR 选项是正确的 - 你不能使用它 - 但这与你的代码中的问题无关。

您在 FOR 语句中使用表达式之前使用了延迟扩展,因此那里没有问题。

您的问题是您试图设置 SKIP=0。 SKIP 值必须 >0 才有效。解决方法很简单:如果您不想跳过任何行,请不要包含 SKIP 选项:-)

@echo off
SetLocal EnableDelayedExpansion
set /a count=0
set "skip="
if !count! gtr 0 set "skip=skip=!count!"
set for_parameters="!skip! delims="
for /f %for_parameters% %%a in ('list.txt') do (
echo %%a
if %%a==Exception: (
set /a count+=2
)
)
Endlocal

扩展 jeb 的观点:您不能执行以下操作

for /f !for_parameters! %%a in ...

因为FOR有特殊的解析规则。大多数命令在延迟扩展后解析它们的选项。但是 FOR 和 IF 在 FOR 变量扩展和延迟扩展发生之前解析它们的选项。 FOR 变量和延迟扩展都不能用于指定 FOR 或 IF 选项。

关于batch-file - 跳过=!计数!在 windows(7) 批处理文件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13639892/

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