代码之家  ›  专栏  ›  技术社区  ›  pstrg

批处理回显命令不写入文件[关闭]

  •  0
  • pstrg  · 技术社区  · 1 年前

    以下测试批处理文件应添加一行,其中包含 当前日期 然后 当前时间 然后 文本字符串 将output.csv文件归档,但它没有。 日期、时间和文本字符串被写入各自的临时文件,但这三个连接的字符串不是通过echo写入的 输出.csv ,即使没有创建 temp-out.txt 是写的。 发生了什么?

    date /t > temp-date.txt
    time /t > temp-time.txt
    :: actual external program will be here
    echo textstring > temp-out.txt
    
    set /p var-date =< temp-date.txt
    set /p var-time =< temp-time.txt
    set /p var-out =< temp-out.txt
    
    set /p full_line = %var-date% %var-time% %var-out%
    echo %full_line% >> output.csv
    
    1 回复  |  直到 1 年前
        1
  •  0
  •   Ярослав Рахматуллин    1 年前

    等号前后的空格在windows cmd中很重要。 这就是你想要的:

    date /t > temp-date.txt
    time /t > temp-time.txt
    :: actual external program will be here
    echo textstring > temp-out.txt
    
    set /p var-date=<temp-date.txt
    set /p var-time=<temp-time.txt
    set /p var-out=<temp-out.txt
    
    set full_line=%var-date% %var-time% %var-out%
    echo %full_line% >> output.csv
    

    /p标志用于提示用户,或者推测从标准输入中读取。在前三种情况下,使用/p是有效的,因为特殊=<语法负责阅读。然而,在最后一组中,它应该被删除,因为所有值都在其他变量中,不需要读入。

    你也可以简化:

    echo %var-date% %var-time% %var-out% >> output.txt