【问题标题】:Create file command in batch files (*.bat)在批处理文件中创建文件命令 (*.bat)
【发布时间】:2010-01-12 03:23:12
【问题描述】:

我想使用批处理文件 (*.bat) 在文件夹 %tv% 中创建一个名为“new text document.txt”的文件。这是我的批处理文件:

set tv=D:\prog\arpack96\ARPACK\SRC
cd "%tv%"
@CON >> "new text document.txt"
set tv=

虽然我确实可以在%tv%创建文件,但是当我运行上面的批处理文件时,我会得到一个错误信息说

' ' 未被识别为内部 或外部命令,可运行程序 或批处理文件。

有没有办法摆脱这个错误信息?还是我使用错误的命令创建文件?

【问题讨论】:

    标签: windows batch-file


    【解决方案1】:

    为了在不提供用户交互的情况下获得一个真正的空文件,您可以使用set /p 命令,有点技巧:

    set tv=c:\documents and settings\administrator
    cd "%tv%"
    <nul >"new text document.txt" (set /p tv=)
    

    set /p 在输出= 字符后的提示后,要求用户输入tv 变量。

    由于提示为空,所以不显示提示。由于您是从 nul 读取的,因此它不会等待用户交互。您可以将空字符串直接存储到 tv 中,从而无需取消设置。


    其实,经过一番思考,有一个更简单的方法。我过去使用过 set /p 技巧,因为这是我所知道的在不添加换行符的情况下回显文本的唯一方法(非常适合控制台中的进度条)。但是如果你想要的只是一个空文件,你可能会逃脱:

    copy /y nul "new text document.txt"
    

    copy 只是将nul 设备的内容(实际上是一个空文件)复制到您的新文件名。 /y 是为了确保在不打扰用户的情况下覆盖它。

    【讨论】:

    • 嗯,这是一个正确答案,它可能不是唯一一个:-)
    • 我通常使用type nul &gt;copy nul。但无论如何,我在很久以后才知道set /p 的把戏:)。
    【解决方案2】:
    type nul > file.txt
    

    file.txt 应该创建为空

    paxdiablo's answer

    【讨论】:

    • 我不想要用户交互;我想要的只是默默地创建一个空文件。
    【解决方案3】:

    从 *.bat 文件创建一个空文件 - 这对我有用。

    echo off > test.txt
    

    【讨论】:

      【解决方案4】:

      con 是 windows 专用文件名,不应使用。

      copy con >> filename.txt

      将要求您输入文本,您可以通过按 Ctrl Z 保存文本。

      【讨论】:

      • 我不想被要求输入文字;我希望在指定位置静默创建文件
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      • 2013-09-25
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      相关资源
      最近更新 更多