none
排程備份的檔名帶出為當時的日期+時間 RRS feed

  • 問題

  • 請問各位大大,怎麼設定將排程備份的檔名帶出為當時的日期+時間,
    比方-->當時的時間為2010/02/24 08:00:00 ,檔名可帶出為20100224-080000.bkf
    2010年2月24日 上午 06:44

解答

  • 您好,
    請問當我在上午時間,例8:00:00時,使用以下批次檔作檔名輸出,是失敗的,
    用echo可看到檔名會是" 80000.txt",檔名前面會有空格,這該怎麼解決?

    FOR /F "tokens=1-4 delims=:." %%a IN ("%time%") DO (SET _MyTime=%%a%%b%%c%%d)
    1. 檔案名稱若有空白,則應在其前後加上雙引號(")
    2. 依照您一開始的要求,8:00:00 時應該是要產生 080000 的結果,所以依照文中的範例來舉一反三,程式碼應該如下:
      FOR /F "tokens=1-3 delims=:." %%a IN ("%time%") DO (SET _MyTime=%%a%%b%%c)
      SET _MyTime=%_MyTime: =0%

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    • 已標示為解答 Fox1 2010年3月1日 上午 05:09
    2010年2月26日 下午 02:59
  • 將變數 _MyTime 的空白字元換成 0

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    • 已標示為解答 Fox1 2010年3月1日 上午 05:09
    2010年3月1日 上午 12:45

所有回覆

  • 請問您是用windows 2000 or 2003?
    亮晶晶的小欣
    2010年2月24日 上午 06:51
  • 您好,是Windows2003

    2010年2月25日 上午 12:31
  • Dear Fox1


    如果是透過批次檔來寫的話會比較快一些,而批次檔內容如下:

    ===========下面是批次檔內容=================
    FOR /F "tokens=1-4 delims=/ " %%ndate IN ("%date%") DO ( SET _backupdate=%%a%%b%%c )
    FOR /F "tokens=1-4 delims=:." %%ntime IN ("%time%") DO ( SET _backuptime=%%a%%b%%c )

    ntbackup.exe backup "備份來源" /a /v:no /r:no /rs:no /hc:off /m normal /l:s /f "備份的目的\%backupdate%-%backuptime%.bkf"

    ===========上面是批次檔內容=================

    備註說明:
    您可以參考一下ntbackup指令說明

    ※如果您希望備份的時間(時分秒)可以具有視別度的話,請將時間的格式改為24小時制(HH:mm:ss),否則晚上8:00或是早上8:00都會是80000

    %backupdate% 自動帶入年月日
    %backuptime% 自動帶入時分秒

    Jason的電腦健身房 沒有永遠的安全 沒有永遠的弱點 有牌的神經病
    • 已編輯 Huang JasonMVP 2010年2月25日 上午 01:10 補充資料
    • 已編輯 Vincent Lin 2010年2月25日 上午 01:58 修正變數名稱
    2010年2月25日 上午 01:05
  • Dear Fox1


    如果是透過批次檔來寫的話會比較快一些,而批次檔內容如下:

    ===========下面是批次檔內容=================
    FOR /F "tokens=1-4 delims=/ " %%ndate IN ("%date%") DO ( SET _backupdate=%%a%%b%%c )
    FOR /F "tokens=1-4 delims=:." %%ntime IN ("%time%") DO ( SET _backuptime=%%a%%b%%c )

    ntbackup.exe backup "備份來源" /a /v:no /r:no /rs:no /hc:off /m normal /l:s /f "備份的目的\%backupdate%-%backuptime%.bkf"

    ===========上面是批次檔內容=================

    備註說明:
    您可以參考一下ntbackup指令說明

    ※如果您希望備份的時間(時分秒)可以具有視別度的話,請將時間的格式改為24小時制(HH:mm:ss),否則晚上8:00或是早上8:00都會是80000

    %backupdate% 自動帶入年月日
    %backuptime% 自動帶入時分秒

    Jason的電腦健身房 沒有永遠的安全 沒有永遠的弱點 有牌的神經病




    您好,請問
    1.FOR /F "tokens=1-4 delims=/ " %%ndate IN ("%date%") DO ( SET _backupdate=%%a%%b%%c )
      會出現-->這個時候不應有 %%ndate

    2.要將備份的時間(時分秒)時間的格式改為24小時制(HH:mm:ss),該怎麼改呢?

    2010年2月25日 上午 07:24
  • 2.要將備份的時間(時分秒)時間的格式改為24小時制(HH:mm:ss),該怎麼改呢?


    到控制台 - 地區語言選項 - 地區選項 - 自訂 - 時間 - 時間格式 - 在下拉選單中選擇 HH:mm:ss , 即可

    Thanks
    不管問題有沒有解決..麻煩都回來回報一下..對回答者也算是一種尊重:)
    微軟技術支援網站
    2010年2月25日 上午 08:08
  • Dear Fox1


    如果是透過批次檔來寫的話會比較快一些,而批次檔內容如下:

    ===========下面是批次檔內容=================
    FOR /F "tokens=1-4 delims=/ " %%ndate IN ("%date%") DO ( SET _backupdate=%%a%%b%%c )
    FOR /F "tokens=1-4 delims=:." %%ntime IN ("%time%") DO ( SET _backuptime=%%a%%b%%c )

    ntbackup.exe backup "備份來源" /a /v:no /r:no /rs:no /hc:off /m normal /l:s /f "備份的目的\%backupdate%-%backuptime%.bkf"

    ===========上面是批次檔內容=================

    備註說明:
    您可以參考一下ntbackup指令說明

    ※如果您希望備份的時間(時分秒)可以具有視別度的話,請將時間的格式改為24小時制(HH:mm:ss),否則晚上8:00或是早上8:00都會是80000

    %backupdate% 自動帶入年月日
    %backuptime% 自動帶入時分秒

    Jason的電腦健身房 沒有永遠的安全 沒有永遠的弱點 有牌的神經病




    您好,請問
    1.FOR /F "tokens=1-4 delims=/ " %%ndate IN ("%date%") DO ( SET _backupdate=%%a%%b%%c )
      會出現-->這個時候不應有 %%ndate

    2.要將備份的時間(時分秒)時間的格式改為24小時制(HH:mm:ss),該怎麼改呢?
    1. 因為變數名稱改錯了啊!修改了前面的變數名稱,結果後面忘記跟著改。
    2. 還是看原創者的說明吧: 如何利用批次檔取得今日的日期或時間,甚至是部分的日期或時間

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    • 已提議為解答 Vincent Lin 2010年3月1日 上午 02:33
    2010年2月26日 上午 06:34
  • 您好,我改成以下command,會出現-->這個時候不應有 %%a 
    會是哪裏沒設對?

    FOR /F "tokens=1-4 delims=/ " %%a IN ("%date%") DO (SET _MyDate=%%a%%b%%c%%d)
    2010年2月26日 上午 08:50
  • 您好,我改成以下command,會出現-->這個時候不應有 %%a 
    會是哪裏沒設對?

    FOR /F "tokens=1-4 delims=/ " %%a IN ("%date%") DO (SET _MyDate=%%a%%b%%c%%d)

    「命令提示字元」視窗執行時,只能使用 1 個 %,不能用 2 個!
    文中的範例程式碼是以批次檔方式執行,因此必須使用 2 個 %
    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    2010年2月26日 上午 08:54
  • 您好,
    請問當我在上午時間,例8:00:00時,使用以下批次檔作檔名輸出,是失敗的,
    用echo可看到檔名會是" 80000.txt",檔名前面會有空格,這該怎麼解決?

    FOR /F "tokens=1-4 delims=:." %%a IN ("%time%") DO (SET _MyTime=%%a%%b%%c%%d)

    2010年2月26日 上午 10:15
  • 您好,
    請問當我在上午時間,例8:00:00時,使用以下批次檔作檔名輸出,是失敗的,
    用echo可看到檔名會是" 80000.txt",檔名前面會有空格,這該怎麼解決?

    FOR /F "tokens=1-4 delims=:." %%a IN ("%time%") DO (SET _MyTime=%%a%%b%%c%%d)
    1. 檔案名稱若有空白,則應在其前後加上雙引號(")
    2. 依照您一開始的要求,8:00:00 時應該是要產生 080000 的結果,所以依照文中的範例來舉一反三,程式碼應該如下:
      FOR /F "tokens=1-3 delims=:." %%a IN ("%time%") DO (SET _MyTime=%%a%%b%%c)
      SET _MyTime=%_MyTime: =0%

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    • 已標示為解答 Fox1 2010年3月1日 上午 05:09
    2010年2月26日 下午 02:59
  • 您好,
    請問SET _MyTime=%_MyTime: =0% 中的%_MyTime: =0%,可以幫我解釋一下嗎?
    2010年2月27日 上午 04:51
  • 將變數 _MyTime 的空白字元換成 0

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    • 已標示為解答 Fox1 2010年3月1日 上午 05:09
    2010年3月1日 上午 12:45