【问题标题】:can't loop this bat file [duplicate]无法循环此 bat 文件 [重复]
【发布时间】:2018-09-12 16:15:16
【问题描述】:
for /l %i% in (1, 1, 8) do (
    set /p x=
    set /p y=
    @set  /a "z=%x%/%y%
    echo %z%
    pause
)

这只是我遇到的循环无法正常工作的问题的一个示例。我不知道为什么。我看到命令提示符仅在几分之一秒内弹出。它不应该那样做。

我希望它重复,而不必像这样复制和粘贴很多次:

set /p x=
set /p y=
@set  /a "z=%x%/%y%
echo %z%
pause
set /p x=
set /p y=
@set  /a "z=%x%/%y%
echo %z%
pause
set /p x=
set /p y=
@set  /a "z=%x%/%y%
echo %z%
pause
set /p x=
set /p y=
@set  /a "z=%x%/%y%
echo %z%
pause

这是我让它工作的唯一方法。

【问题讨论】:

  • 补充说明:set /A 不需要任何环绕的%(或!)符号,您可以只写set /A z=x/y;你有不平衡的报价"...

标签: loops batch-file


【解决方案1】:

根据您对For /L 循环的错误使用,应该是%%i,而不是%i%,并且按照cmets 中提供的建议,您的脚本应该类似于以下示例之一。

  1. 没有延迟扩展:

    @Echo Off
    For /L %%A In (1,1,8) Do (
        Set /P "x=Dividend: "
        Set /P "y=Divisor: "
        Set /A z=x/y
        Call Echo Quotient as integer: %%z%%
        Pause
        Set /P "x=Dividend: "
        Set /P "y=Divisor: "
        Set /A z=x/y
        Call Echo Quotient as integer: %%z%%
        Pause
        Set /P "x=Dividend: "
        Set /P "y=Divisor: "
        Set /A z=x/y
        Call Echo Quotient as integer: %%z%%
        Pause
        Set /P "x=Dividend: "
        Set /P "y=Divisor: "
        Set /A z=x/y
        Call Echo Quotient as integer: %%z%%
        Pause
    )
    
  2. 延迟扩展:

    @Echo Off
    SetLocal EnableDelayedExpansion
    For /L %%A In (1,1,8) Do (
        Set /P "x=Dividend: "
        Set /P "y=Divisor: "
        Set /A z=x/y
        Echo Quotient as integer: !z!
        Pause
        Set /P "x=Dividend: "
        Set /P "y=Divisor: "
        Set /A z=x/y
        Echo Quotient as integer: !z!
        Pause
        Set /P "x=Dividend: "
        Set /P "y=Divisor: "
        Set /A z=x/y
        Echo Quotient as integer: !z!
        Pause
        Set /P "x=Dividend: "
        Set /P "y=Divisor: "
        Set /A z=x/y
        Echo Quotient as integer: !z!
        Pause
    )
    

请在命令提示符处阅读您的两个主要命令的使用信息:

For /?

 

Set /?

【讨论】:

    猜你喜欢
    • 2020-11-22
    • 2015-10-22
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    相关资源
    最近更新 更多