批處理指令碼中生成帶有時間戳的檔名

MD Aminul Islam 2022年7月12日
批處理指令碼中生成帶有時間戳的檔名

有時,我們從批處理指令碼生成系統日誌。但是,這裡的問題是日誌檔案的名稱;如果檔名不是唯一的,它可能會替換同名的檔案。

在本文中,我們將瞭解如何使用當前時間和日期從系統生成唯一的檔名。此外,我們將討論程式碼及其解釋以使其更易於理解。

批處理指令碼中帶有時間戳的系統生成檔名

我們在這裡使用時間和日期,因為時間和日期並不總是相同,並提供有關檔名的資訊。在下面的示例中,我們將生成一個名稱為時間和日期組合的日誌檔案。

我們示例的程式碼如下所示:

@ECHO off
SET YY=%date:~10,4%
SET MM=%date:~4,2%
SET DD=%date:~7,2%
SET HH=%time:~0,2%
IF %HH% lss 10 (SET HH=0%time:~1,1%)

SET NN=%time:~3,2%
SET SS=%time:~6,2%
SET MS=%time:~9,2%

SET NEWFILENAME=%YY%%MM%%DD%-%HH%%NN%%SS%
ECHO "This is a data" > "G:\Directory\access_%NEWFILENAME%.txt"

請記住,批處理包含時間和日期的內建變數;它們是 %time%%date%。這些變數以字串格式生成時間和日期。

在我們的程式碼中,我們使用以下幾行將日期的部分與字串分開:

SET YY=%date:~10,4%
SET MM=%date:~4,2%
SET DD=%date:~7,2%

同樣,我們使用以下幾行將時間的各個部分與字串分開:

SET HH=%time:~0,2%
IF %HH% lss 10 (SET HH=0%time:~1,1%)

SET NN=%time:~3,2%
SET SS=%time:~6,2%
SET MS=%time:~9,2%

然後,我們使用以下行建立了包含時間和日期的檔名:

SET NEWFILENAME=%YY%%MM%%DD%-%HH%%NN%%SS%

最後,我們使用以下行在特定目錄中建立了一個具有系統生成名稱的檔案:

ECHO "This is a data" > "G:\Directory\access_%NEWFILENAME%.txt"

當你在命令提示符下執行此指令碼時,你將看到一個檔案,其名稱是日期和時間的組合。該檔案包含文字 This is a data

請注意,我們在本文中分享的程式碼是用 Batch 指令碼編寫的,並且只能在 Windows 命令提示符環境中執行。

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn