【问题标题】:Batch processing multiple lines to a single line?将多行批处理为单行?
【发布时间】:2011-10-20 14:49:38
【问题描述】:

如果我有一个看起来像这样的文件,则在批处理 (.bat) 中:

测试1 测试2 测试3

如何将该文件的内容重写为在同一行上?例如:

测试1,测试2,测试3


提前致谢!
尼克拉斯

【问题讨论】:

    标签: windows scripting batch-file cmd


    【解决方案1】:

    使用for /f 命令逐行读取文件。然后,您可以将结果累积到一个变量中以进行最终输出。

    【讨论】:

    • 嗯,我尝试使用 for /f 命令,但无法将所有行都处理为一个变量。你建议怎么做?
    【解决方案2】:

    我已经解决了!

    for /f "Tokens=*" %%i in (file.txt) do (
    set var=%%i
    rem The magic below appends the data var with the data var + the var
    if defined var set data=!data!, !var!
    )
    

    【讨论】:

    • 是的,这可行,但是感叹号、插入符号和空行存在一些问题。你可以阅读SO:how to read a file
    • var 变量不是必需的。另外,最好用"delims="代替"tokens=*",即:for /f "delims=" %%i in (file.txt) do set data=!data!, %%i,只需清除for前的data变量即可。
    • 这只是概念证明,而不是实际代码。但是,是的,我确实将 enabledelayedexpansion 与感叹号一起使用。感谢您的回复。
    猜你喜欢
    • 2012-12-18
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    相关资源
    最近更新 更多