【问题标题】:Assign variables in batch script在批处理脚本中分配变量
【发布时间】:2015-03-02 08:46:15
【问题描述】:

我是 Windows 批处理编程的新手,我发现变量赋值存在问题。这是我的代码:

@echo off
setlocal enabledelayedexpansion
set Video=1
set FILEMEDIA=outputMedia.txt
for /f %%a in (%FILEMEDIA%) do (
    set /a Video=%Video%+1
    @echo Video
    set file=%%a
    @echo file
)

如果 FILEMEDIA 有两行,我想获取 Video=2 和文件变量中的行。但是,最后我得到 Video=1 并且当我尝试打印文件时出现错误(回显关闭)。

【问题讨论】:

    标签: variables batch-file


    【解决方案1】:

    某种与How do I increment a DOS variable in a FOR /F loop?的重复

    应该延迟扩展的变量用!VARIABLE!而不是%VARIABLE%引用。

    @echo off
    setlocal enabledelayedexpansion
    set Video=1
    set FILEMEDIA=outputMedia.txt
    for /f %%a in (%FILEMEDIA%) do (
        set /a Video+=1
        @echo !Video!
        set file=%%a
        @echo file
    )
    endlocal
    

    【讨论】:

    • 可能是@echo !file! 而不是@echo file
    猜你喜欢
    • 1970-01-01
    • 2011-02-10
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 2022-01-04
    • 1970-01-01
    相关资源
    最近更新 更多