none
问个dos脚本问题 RRS feed

答案

  • 先说明一下,你给的方法不能set成功
    我后来找到原因
    这是因为for是复合语句造成的 do里面set语句不会有效

    必须使用延迟处理,才可以进行赋值
    如下面代码

    @echo off
    
    for /f "delims=" %%i in (list.txt) do (
    setlocal enabledelayedexpansion
     set str=%%i
     echo !str!
     echo %%i
    endlocal
    )
    
    pause


    • 已标记为答案 bofrobber 2010年3月4日 7:46
    2010年3月4日 7:45

全部回复

  • 实现代码:
    @echo off
    for /f "delims=" %%i in (list.txt) do (
    set %str%=%%i
    echo str=%str%
    echo %%i
    )
    注意
    set %str%=%%i
    
    
    
    这是batch的赋值要求,详细可以参考cmd的usage。
    The only way to learn how to program is to program.
    
    
    
    2010年3月2日 14:48
    版主
  • 先说明一下,你给的方法不能set成功
    我后来找到原因
    这是因为for是复合语句造成的 do里面set语句不会有效

    必须使用延迟处理,才可以进行赋值
    如下面代码

    @echo off
    
    for /f "delims=" %%i in (list.txt) do (
    setlocal enabledelayedexpansion
     set str=%%i
     echo !str!
     echo %%i
    endlocal
    )
    
    pause


    • 已标记为答案 bofrobber 2010年3月4日 7:46
    2010年3月4日 7:45