Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

透過DOS指令建立時間(hhmmss)資料夾?

我想要寫一個batch檔,

在"Win7底下"執行他的時候可以自動建立以當下時間(hhmmss)為名稱的資料夾,

我曾經搜尋過網路也看到類似的寫法:

if "%time:~0,1%"==" " set hh=0%hh:~1,1%

set yymmdd_hhmmss=%hh%%time:~3,2%%time:~6,2%

md c:\%yymmdd_hhmmss%

但是這種寫法在Win7底下執行無法被正確的建立時間資料夾,

例如凌晨4點30分08秒,

他會建立"0~3008"的資料夾,

在下午14點34分46秒,

他會建立"0~3446"的資料夾,

另外一種寫法是:

set hh=%time:~0,2%

set yymmdd_hhmmss=%hh%%time:~3,2%%time:~6,2%

md c:\dmcheck\%yymmdd_hhmmss%

這種寫法在10am~23pm的時候可以正確的建立hhmmss資料夾,

例如下午2點37分20秒,

他會建立"143720"的資料夾,

但是碰到小時數第一碼是"0"的(00am~09am),

他就無法正確建立資料夾,

因此想請教一下batch檔達人,

要怎樣寫才能夠在24hr底下任何時間都可以正確的以hhmmss為名稱來建立資料夾?

PS: 我是在Win7下執行的.

已更新項目:

回覆Abre, 執行echo %time%後的結果為:

11:29:22.01

2 個已更新項目:

回覆Abre, 我要的不是已知的時間, 而是隨時隨地我只要執行bat檔他就能將執行當下的時間當成資料夾的名稱來建立資料夾, 也就是說如果我在11:29:22的時候執行bat檔他就會自動幫我建立一個名稱為112922的資料夾, 如果是在09:18:38的時候執行bat檔, 他就會自動幫我建立一個091838為名稱的資料夾.

3 個已更新項目:

再次回覆Abre, 剛試了一下你的指令, 的確是可以依照當下時間為名稱來建立資料夾, 但如果小時的第一碼是0的話他無法顯示, 舉例來說09:08:12的時候建立出來的資料夾是90812, 而不是090812, 是否有辦法再修改一下指令強迫第一個數字0顯示?

4 個已更新項目:

回覆Abre, 我剛試了一下你加了&exit的用意是避免小時數第一碼是0的時候建立資料夾會變成建立兩個, 但是這會變成在這段程式碼後的指令就會被跳過無法執行, 例如我想要做這個建以時間為主的資料夾是因為建立完成後我要把當下的log檔儲存在這資料夾下, 也就是我不只是單純的只是要建立空的資料夾而已, 我在做建立資料夾的動作之後我會下"cd"切換資料夾的動作並把log file copy到該資料夾, 但如果你下了%exit後變成bat檔執行到這邊就跳出來了後續的動作就無法完成.....

5 個已更新項目:

另外如果依照你提供的第一個指令, 就算是完成了時間為名稱的資料夾建立, 我後續也無法用:

cd %%a%%b%%c

這個指令去切換到這個資料夾?

6 個已更新項目:

Abre可以運作了, 謝謝啦!

5 個解答

評分
  • Moore
    Lv 5
    8 年前
    最佳解答

    可以貼上echo %time%的結果嗎?

    2012-12-06 00:35:18 補充:

    以11:29:22.01 為格式,產生hhmmss資料夾

    批次檔內容如下

    for /f "delims=:. tokens=1,2,3" %%a in ('echo %time%') do md %%a%%b%%c

    2012-12-06 11:36:49 補充:

    @echo off

    for /f "delims=:. tokens=1,2,3" %%a in ('echo %time%') do (

    if "%time:~0,1%"==" " md 0%%a%%b%%c&exit

    md %%a%%b%%c

    )

    2012-12-06 15:40:10 補充:

    for /f "delims=:. tokens=1,2,3" %%a in ('echo %time%') do (

    if "%time:~0,1%"==" " (md 0%%a%%b%%c ) else (md %%a%%b%%c)

    )

    2012-12-06 15:56:09 補充:

    for /f "delims=:. tokens=1,2,3" %%a in ('echo %time%') do (

    if "%time:~0,1%"==" " (set folder=0%%a%%b%%c ) else (set folder=%%a%%b%%c)

    )

    md %folder%

    cd %folder%

  • 匿名使用者
    8 年前

    我每次都是去這里看的哦, http://lvmiss.com/

    佔哖剓倓劖冕

  • 匿名使用者
    8 年前

    要買高仿的還是要去 http://aaashops.com/ 品質不錯,老婆很喜歡。

    儿吳

  • 匿名使用者
    8 年前

    http://lv333.com/ 這家不錯超3A品質,買幾次啦,跟真的一樣。

    分佉南价哹

  • 您覺得這個回答如何?您可以登入為回答投票。
  • 8 年前

    回覆Abre, 執行echo %time%後的結果為:

    11:29:22.01

還有問題?馬上發問,尋求解答。