gpt4 book ai didi

batch-file - for 循环批处理文件中的算术运算

转载 作者:行者123 更新时间:2023-12-03 21:17:53 28 4
gpt4 key购买 nike

我在批处理文件中有一个 for 循环,如下所示:

for %%y in (100 200 300 400 500) do (
set /a x = y/25
echo %x%
)

线路:
set /a x = y/25

似乎没有做任何划分。将每个 y 除以 25 的正确语法是什么?我只需要这个除法的整数结果。

最佳答案

无需扩展环境变量即可在 SET/A 语句中使用。但是 FOR 变量必须扩展。

此外,即使您的计算有效,ECHO 也会失败,因为在解析语句时会发生百分比扩展,并且会立即解析整个 FOR 构造。因此 %x% 的值将是执行循环之前存在的值。要获取在循环中设置的值,您应该使用延迟扩展。

此外,您应该删除赋值运算符之前的空格。您正在声明名称中带有空格的变量。

@echo off
setlocal enableDelayedExpansion
for %%A in (100 200 300 400 500) do (
set n=%%A

REM a FOR variable must be expanded
set /a x=%%A/25

REM an environment variable need not be expanded
set /a y=n/25

REM variables that were set within a block must be expanded using delayed expansion
echo x=!x!, y=!y!

REM another technique is to use CALL with doubled percents, but it is slower and less reliable
call echo x=%%x%%, y=%%y%%
)

关于batch-file - for 循环批处理文件中的算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12118810/

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