批處理以當前時間為檔名建立檔案

ARM的程式設計師敲著詩歌的夢發表於2020-04-04

批處理以當前時間為檔名建立檔案

批處理建立空檔案

有時候,需要建立以當前時間命名的檔案,手動輸入當然可以,但是有更省心的方法嗎?

假設我是 windows 作業系統,開啟命令列。

輸入以下命令試試:

echo %date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%

輸出類似:

2019_06_24_22_22_13

如果不想要秒,則輸入:

echo %date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%

輸出類似:

2019_06_24_22_23

既然都到這一步了,那修改一下就可以達到目的了。

比如建立以日期命名的 .md 檔案。

cd. >%date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%.md

這時候會發現當前目錄下多了一個 2019_06_24_22_45.md 檔案,而且是空檔案。

上面的命令表示把命令cd.的輸出重新定向到 xxx.md 檔案,cd. 表示改變當前目錄為當前目錄,即等於沒改變,而且此命令不會有輸出,所以就建立了沒有內容的空檔案。

其實建立空檔案的方法還有很多:

1、copy nul a.txt
nul表示空裝置,從概念上講,它不可見,存在於每個目錄中,可以把它看成一個特殊的“檔案”,它沒有內容;此例子表示將空裝置複製到 a.txt,同樣建立了沒有內容的空檔案。

2、type nul>a.txt
此例子表示顯示空裝置的內容,並寫入到 a.txt。

3、echo a 2>a.txt
“2”表示錯誤輸出的控制程式碼,此例中沒有錯誤輸出,所以建立了沒有內容的空檔案。
其實“>”預設重定向到控制程式碼1,即標準輸出控制程式碼。比如 cd.>a.txt,其實就是cd. 1>a.txt
其實,控制程式碼3到9也可以使用在本例中,它們是未經定義的控制程式碼,也不會有輸出,如
echo a 3>a.txt

我們們實操一下。

D:\>copy nul a.txt
已複製         1 個檔案。

D:\>type nul>b.txt

D:\>echo a 2>c.txt
a

D:\>echo a 3>d.txt
a

根據上面的實驗,type nul>b.txt 這個方法比較好,因為命令列沒有輸出,很清爽。


參考資料

  1. 批處理以當前時間為檔名建立指定格式檔案

  2. 建立空檔案的幾種方法

相關文章