我想使用批处理文件(%tv%
)在文件夹*.bat
中创建名为“new text document.txt”的文件。这是我的批处理文件:
set tv=D:\prog\arpack96\ARPACK\SRC
cd "%tv%"
@CON >> "new text document.txt"
set tv=
虽然我可以在%tv%
中真正创建文件,但是当我运行上面的批处理文件时,我会收到一条错误消息
''不被视为内部 或外部命令,可操作程序 或批处理文件。
有没有摆脱这个错误信息?或者我使用错误的命令创建文件?
答案 0 :(得分:6)
为了在不必提供用户交互的情况下获得真正空的文件,您可以使用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
是为了确保在不打扰用户的情况下覆盖它。
答案 1 :(得分:4)
从* .bat文件创建一个空文件 - 这对我有用。
echo off > test.txt
答案 2 :(得分:3)
答案 3 :(得分:0)
con是Windows专用文件名,不应使用它。
copy con&gt;&gt; FILENAME.TXT
应要求您输入文本,然后您可以通过键入Ctrl Z来保存文本。