【问题标题】:batch, setting a string variable in a for loop批处理,在 for 循环中设置字符串变量
【发布时间】:2014-03-19 00:40:57
【问题描述】:

在 for 循环内部时,set 命令不会设置字符串变量,而在外部则可以正常工作。我希望它在存储后直接导出到 .txt 文件,并且效果很好。代码如下:

For /l %%a in (1,1,5) do (
set /p string="StringIn %%a:"
echo %string %>> string_list.txt
)

Start string_list.txt

【问题讨论】:

    标签: string batch-file for-loop set echo


    【解决方案1】:

    在括号范围内扩展变量集时,您需要使用延迟扩展。

    setlocal EnableDelayedExpansion
    For /l %%a in (1,1,5) do (
        set /p string="StringIn %%a:"
        >> string_list.txt echo !string!
    )
    endlocal
    

    【讨论】:

    • 谢谢!这很好用(并且将来会成为很好的知识),但是我正在使用此代码进行文件夹比较,并且通过使用 DIR 并将子文件夹导出到文本文档,我找到了一种更有效的方法。你知道是否有办法格式化命令或输出,所以我只有文件夹名称而不是所有其他数据?这种偏离了原来的问题,不知道要不要再问一个问题?
    • 使用 '/b' 选项仅用于文件路径和名称,使用 '/ad' 选项仅使用 dir 命令列出目录。见“目录/?”所有选项。
    猜你喜欢
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 2023-03-06
    • 2020-06-04
    相关资源
    最近更新 更多