批处理文件(*.bat)中的创建文件命令

3

我希望能够通过一个批处理文件(*.bat)在文件夹%tv%中创建一个名为“new text document.txt”的文件。以下是我的批处理文件:

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

虽然我可以在%tv%中真正创建文件,但当我运行上述批处理文件时,会收到错误消息:

' ' 不是内部或外部命令、可执行的程序或批处理文件。

有没有办法消除这个错误消息?或者我是使用错误的命令创建文件吗?

4个回答

7
为了获得一个真正的空文件而不需要提供用户交互,您可以使用set /p命令进行一些技巧操作:
set tv=c:\documents and settings\administrator
cd "%tv%"
<nul >"new text document.txt" (set /p tv=)
set tv=命令在输出=后的提示符后,要求用户输入到tv变量中。由于提示符为空,因此不会显示提示符。由于从nul中读取,它不会等待用户交互。您可以将空字符串直接存储到tv中,从而无需取消设置。实际上,经过更多的思考之后,有一种更简单的方法。我过去使用了set /p技巧,因为这是我知道的唯一在不添加换行符的情况下回显文本的方法(非常适用于控制台中的进度条)。但如果你只想要一个空文件,你可能可以采用以下方法:set tv=
copy /y nul "new text document.txt"
copy 命令会将 nul 设备(实际上是一个空文件)的内容复制到你的新文件名中。 /y 参数是为了确保在不打扰用户的情况下覆盖原有文件。

嗯,这是一个正确的答案,但可能不是唯一的答案 :-) - paxdiablo
我通常使用 type nul >copy nul。但是我后来在这里学到了 set /p 的技巧 :)。 - Joey

4

从*.bat文件中创建一个空文件 - 这对我起作用了。

echo off > test.txt

3

我不需要用户交互,我只想静默地创建一个空文件。 - Graviton

0

con是Windows专用的文件名,不应该被使用。

复制 con >> 文件名.txt

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


我不想被要求输入文本;我希望在指定位置静默创建一个文件。 - Graviton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接