2010-09-24 40 views
0

我正在寫命令行輸出到一個文件,然後想要在記事本中打開此文件。 所以我寫了類似如下(簡化的例子):如何關閉從命令行創建的文件?

set logPath=log.txt 
echo %date% %time% > %logPath% 
notepad %logPath% 

但問題是,當最後一個命令運行(記事本%LOGPATH%),該文件尚未創建(或內容不衝到它),所以記事本不打開不存在的文件或打開一個空的文件(取決於)。

所以我想知道是否有辦法強制從命令行關閉文件。

UPD:謝謝你的評論,你是對的:這個特別的(簡化的)例子確實有效。我在W7上試了一下,有評論報道稱它可以在XP和Vista上運行。它不在原始腳本中,會嘗試在那裏尋找錯誤。

+1

文件應在該批次被自動關閉。你的例子在我的Vista機器上工作正常。實際問題可能與原始腳本中的文件名或其他內容有關。 – 2010-09-24 11:54:30

回答

0

您的示例代碼適用於Microsoft Windows XP [版本5.1.2600]。 據我所知,你只需要關閉你打開的文件並且不打開管道。

所以你應該檢查你的真實代碼的一些錯誤(更新你的問題呢?)。

+0

@RC管道和開口如何不同? – Midhat 2010-09-28 06:10:54

+0

管道是由外殼處理和開放是由開發者處理 – 2010-09-28 06:37:20

0

試試這個:

echo %date% %time% > log.txt 
notepad %logPath% 

我認爲,它預計在重定向文件名,而不是一個變量名。

+0

我試過了,不幸的是,沒有爲我工作。其實,後來我介紹了一個變量,原來它就是你說的。 – 2010-09-24 12:39:51

0

這個問題看起來很奇怪,但如果它發生的歷史,爲什麼不等待秒

CHOICE /C:x /T:x,1 > NUL 
+0

我不認爲等待是解決這個問題的好辦法。 – 2010-09-24 12:42:02