【发布时间】:2021-06-09 06:59:34
【问题描述】:
这是我的代码:
for %%i in ("joined/*.mp4") do (
set /a result=(%random%*2/32768)+1
echo %result%
)
它给了我关于 +1 was unexpected at this time 的错误。
我尝试了另一种变体:
for %%i in ("joined/*.mp4") do (
set /a result=(%random%*2/32768)
echo %result%
)
它给了我一个关于不平衡括号的错误。
如何正确回显随机变量?
谢谢。 :)
尝试以下代码每次都会给我相同的随机值。如何在循环的每次迭代中更改它?
setlocal EnableDelayedExpansion
for %%i in ("joined/*.mp4") do (
set /a result= %random%*20/32768 + 1
echo !result!
)
是否有我可以阅读的资源来详细了解批处理文件的工作原理以及它们的语言(如循环、数组等)?我尝试在 Google 上搜索,但没有找到任何有用的信息。
【问题讨论】:
-
删除
set /a语句中的括号。您不需要它们并且关闭)过早关闭您的for循环。你应该阅读delayed expansion(random和result) -
谢谢@Stephan。 :) 代码现在可以工作,但
result的值似乎在整个循环中保持不变。 -
我想通了,我需要在任何地方使用
!。 :)
标签: loops for-loop batch-file cmd