2010-01-12 187 views
2

我想使用批處理文件(*.bat)在文件夾%tv%中創建一個名爲「new text document.txt」的文件。這是我的批處理文件:在批處理文件(* .bat)中創建文件命令

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

雖然我真的可以在文件中創建%tv%,但是當我運行上面的批處理文件,我會得到一個錯誤信息說

「」無法識別作爲內部 或外部命令,可操作程序 或批處理文件。

有無論如何擺脫這個錯誤信息?或者我使用錯誤的命令創建文件?

回答

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是爲了確保它被覆蓋而不會打擾用戶。

+0

這是正確的答案。 – Graviton 2010-01-12 03:46:37

+0

好吧,它是* a *正確的答案,它可能不是唯一的答案:-) – paxdiablo 2010-01-12 03:48:53

+0

我通常使用'type nul>'或'copy nul'。但是我在這裏稍後瞭解了這個'set/p'技巧:)。 – Joey 2010-01-12 06:47:33

3
type nul > file.txt 

file.txt的應創建空

paxdiablo's answer

+0

不,它不工作。 – Graviton 2010-01-12 03:43:45

+0

我不想用戶交互;我只想靜靜地創建一個空文件。 – Graviton 2010-01-12 03:51:57

+0

類型nul應該這樣做 – jspcal 2010-01-12 03:55:33

0

con是Windows的專門文件名,它不應該被使用。

副本騙子>> FILENAME.TXT

應要求你輸入文字,並可以按Ctrl Z.

+0

我不想被要求輸入文本;我想要在指定位置以無聲方式創建文件 – Graviton 2010-01-12 03:44:20

4

從* .bat文件創建一個空文件 - 這對我很有用。

echo off > test.txt