bat的執行 - 第 3 頁

第 3 頁,共 5 頁 首頁首頁 1 2 3 4 5 末頁末頁
顯示結果從第 21 筆 到 30 筆,共計 45 筆

主題: bat的執行

  1. #21
    親愛的OP找我們時 vvcvc 的大頭照
    註冊日期
    2001-08-08
    討論區文章
    8,061

    回覆: bat的執行

    if /I %th% GEQ 24 set /A th=%th%-24 && goto check1
    可否詳細說明

    我現在有個需求是
    當目前的時間是早上10點前
    在command模式下輸入echo %time%得到的是個位數
    我想要在前方自動補一個0
    但若小時已經是十位數...就不補0
    我該怎麼在批次檔裡下判斷
    讓他判斷完之後自動跑我需要的程式碼

    我的程式碼如下(想要使用批次檔自動export registry裡的資料)
    判斷式不知該怎麼寫及加在那裡
    語法:
    @ECHO OFF
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%0%TIME:~1,1%%TIME:~3,2%%TIME:~6,2%.reg
    
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.reg


    不要因為也許會改變
    就不肯說那句美麗的誓言
    不要因為也許會分離
    就不敢求一次傾心的相遇
    總有一些什麼會留下來的吧
    好讓 好讓那些不相識的人
    也能知道我曾經怎樣深深地愛過你

    點廣告賺取微薄的零用錢
    http://www.neobux.com/?rh=686F6F74736369

  2. #22
    FYI
    FYI 目前未上線
    會員
    註冊日期
    2001-06-22
    討論區文章
    7,294
    引用 作者:vvcvc 瀏覽文章
    當目前的時間是早上10點前
    在command模式下輸入echo %time%得到的是個位數
    我想要在前方自動補一個0
    但若小時已經是十位數...就不補0
    語法:
    FOR /F "tokens=1* delims=:" %%i IN ('ECHO %time%') DO SET t=%%i:%%j && FOR /L %%n IN (0,1,9) DO IF %%i.==%%n. SET t=0%%i:%%j
    ECHO %t%
    nircmd.exe cmdwait
    nircmd.exe waitprocess

  3. #23
    會員
    註冊日期
    2001-05-18
    討論區文章
    1,939

    回覆: bat的執行

    引用 作者:vvcvc 瀏覽文章
    if /I %th% GEQ 24 set /A th=%th%-24 && goto check1
    可否詳細說明

    我現在有個需求是
    當目前的時間是早上10點前
    在command模式下輸入echo %time%得到的是個位數
    我想要在前方自動補一個0
    但若小時已經是十位數...就不補0
    我該怎麼在批次檔裡下判斷
    讓他判斷完之後自動跑我需要的程式碼

    我的程式碼如下(想要使用批次檔自動export registry裡的資料)
    判斷式不知該怎麼寫及加在那裡
    語法:
    @ECHO OFF
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%0%TIME:~1,1%%TIME:~3,2%%TIME:~6,2%.reg
    
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.reg
    去年底剛好寫了兩個自動下載衛星雲圖(中央氣象局和日本衛星雲圖)有考慮到
    if %before2% leq 9 set before2=0%before2%

    test.bat
    setlocal EnableDelayedExpansion
    set th=25
    if /I %th% GEQ 24 set /A th=%th%-24 && if !th! leq 9 set th=0!th!
    echo %th%
    goto
    此文章於 2011-01-24 07:27 PM 被 bx2aa 編輯。

  4. #24
    親愛的OP找我們時 vvcvc 的大頭照
    註冊日期
    2001-08-08
    討論區文章
    8,061

    回覆: bat的執行

    糟糕2個回答都沒看懂
    更慘的是直接套用也不知要放在那裡才行

    為什麼要設定th=25
    這樣比較一定會大於24
    所以接下來一定會做25-24的動作
    那th不就固定是1
    和9做比較後被設定成01
    回傳%th%也就是回傳01
    接著goto那裡?
    我的理解應該是錯了
    因為SET /A這個我完全不知是什麼意思
    可否解釋這個算式?
    不要因為也許會改變
    就不肯說那句美麗的誓言
    不要因為也許會分離
    就不敢求一次傾心的相遇
    總有一些什麼會留下來的吧
    好讓 好讓那些不相識的人
    也能知道我曾經怎樣深深地愛過你

    點廣告賺取微薄的零用錢
    http://www.neobux.com/?rh=686F6F74736369

  5. #25
    親愛的OP找我們時 vvcvc 的大頭照
    註冊日期
    2001-08-08
    討論區文章
    8,061

    回覆: bat的執行

    我好像用了很簡單的語法解決自己的問題了
    不知這方法會不會有什麼問題...也不知道這樣的語法是不是很蠢

    @ECHO OFF
    if /I %time:~0,2% GEQ 10 goto double else single
    :single
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%0%TIME:~1,1%%TIME:~3,2%%TIME:~6,2%.reg
    :double
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.reg


    不要因為也許會改變
    就不肯說那句美麗的誓言
    不要因為也許會分離
    就不敢求一次傾心的相遇
    總有一些什麼會留下來的吧
    好讓 好讓那些不相識的人
    也能知道我曾經怎樣深深地愛過你

    點廣告賺取微薄的零用錢
    http://www.neobux.com/?rh=686F6F74736369

  6. #26
    會員
    註冊日期
    2001-05-18
    討論區文章
    1,939

    回覆: bat的執行

    引用 作者:vvcvc 瀏覽文章
    我好像用了很簡單的語法解決自己的問題了
    不知這方法會不會有什麼問題...也不知道這樣的語法是不是很蠢

    @ECHO OFF
    if /I %time:~0,2% GEQ 10 goto double else single
    :single
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%0%TIME:~1,1%%TIME:~3,2%%TIME:~6,2%.reg
    :double
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.reg
    @echo off
    cls
    set time=10:16:40.40
    set /a th=%time:~0,2%
    if %th% leq 9 set th=0%th%
    rem reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%th%%TIME:~3,2%%TIME:~6,2%.reg

    echo %DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%th%%TIME:~3,2%%TIME:~6,2%.reg

    set time= 2:16:40.40
    set /a th=%time:~0,2%
    if %th% leq 9 set th=0%th%
    echo %DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%th%%TIME:~3,2%%TIME:~6,2%.reg
    pause

  7. #27
    FYI
    FYI 目前未上線
    會員
    註冊日期
    2001-06-22
    討論區文章
    7,294
    引用 作者:vvcvc 瀏覽文章
    @ECHO OFF
    if /I %time:~0,2% GEQ 10 goto double else single
    :single
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%0%TIME:~1,1%%TIME:~3,2%%TIME:~6,2%.reg
    :double
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.reg
    好方法! 但是只有一個小小小問題在於三個DATE & TIME 指令所回報的時間有百萬分之一的機率不一致, 例如0:59:59.99 -> 1:00:00.00, 所以最好先儲存於環境變數再處理, 例如:
    @ECHO OFF
    FOR /F "tokens=1-3,5-7 delims=/:. " %%i IN ('ECHO %DATE% %TIME%') DO IF /I %%l GEQ 10 (SET t=%%i%%j%%k%%l%%m%%n) ELSE (SET t=%%i%%j%%k0%%l%%m%%n)
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%t%.reg
    然而除非透過其他單一指令取得時間, 否則DATE & TIME 並非同時執行, 所以理論上還是會有千萬分之一的機率導致日期比實際晚一天, 例如23:59:59.99 -> 0:00:00.00

  8. #28
    親愛的OP找我們時 vvcvc 的大頭照
    註冊日期
    2001-08-08
    討論區文章
    8,061

    回覆: bat的執行

    這個程式碼看起來比我的好太多了
    而且把我沒想到的問題都解決
    感謝FYI的回覆

    我如果想再加入一個功能
    就是備份檔案控制在500個以內
    今天查del指令的用法(說明滿簡單的)
    del /Q filename
    當檔案數達到500個時我想刪除一個最舊的檔案後再重新建立新備份檔
    該怎麼讓程式自己去比較並刪除?
    此文章於 2011-01-25 12:34 PM 被 vvcvc 編輯。
    不要因為也許會改變
    就不肯說那句美麗的誓言
    不要因為也許會分離
    就不敢求一次傾心的相遇
    總有一些什麼會留下來的吧
    好讓 好讓那些不相識的人
    也能知道我曾經怎樣深深地愛過你

    點廣告賺取微薄的零用錢
    http://www.neobux.com/?rh=686F6F74736369

  9. #29
    會員
    註冊日期
    2001-05-18
    討論區文章
    1,939

    回覆: bat的執行

    引用 作者:FYI 瀏覽文章
    好方法! 但是只有一個小小小問題在於三個DATE & TIME 指令所回報的時間有百萬分之一的機率不一致, 例如0:59:59.99 -> 1:00:00.00, 所以最好先儲存於環境變數再處理, 例如:
    @ECHO OFF
    FOR /F "tokens=1-3,5-7 delims=/:. " %%i IN ('ECHO %DATE% %TIME%') DO IF /I %%l GEQ 10 (SET t=%%i%%j%%k%%l%%m%%n) ELSE (SET t=%%i%%j%%k0%%l%%m%%n)
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%t%.reg
    然而除非透過其他單一指令取得時間, 否則DATE & TIME 並非同時執行, 所以理論上還是會有千萬分之一的機率導致日期比實際晚一天, 例如23:59:59.99 -> 0:00:00.00
    您上面說的 "有千萬分之一的機率導致日期比實際晚一天"
    不管是 ECHO %DATE% %TIME% 或是 ECHO %TIME% %DATE% 我感覺一樣存在日期時間不一致, 要用同一個 ctime 1970 年1月1日開始的數字才不會有這個問題.

    datetime.cs
    ----------------------------------------------------
    using System;

    class Datetime
    {
    static void Main()
    {
    DateTime dt = DateTime.Now;
    Console.WriteLine(string.Format("{0:yyyyMMddHHmmss}",dt));
    ///Console.WriteLine(string.Format("{0:yyyyMMddHHmmssffff}",dt));

    }
    }
    ----------------------------------------------------

    C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe csc datetime.cs
    20110125131621

    for /F %i in ('datetime.exe') do echo %i
    20110125132351

    for /F %%i in ('datetime.exe') do reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%%i.reg
    for /F %%i in ('datetime.exe') do reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run D:\help\%%i.reg
    此文章於 2011-01-25 09:46 PM 被 bx2aa 編輯。

  10. #30
    FYI
    FYI 目前未上線
    會員
    註冊日期
    2001-06-22
    討論區文章
    7,294
    引用 作者:vvcvc 瀏覽文章
    當檔案數達到500個時我想刪除一個最舊的檔案後再重新建立新備份檔
    FOR /F "skip=500 tokens=1" %%i IN ('DIR /B /O-N 20????????????.reg') DO IF NOT "%%i"=="" DEL "%%i"
    其實取得時間的另一個方法則是從檔案資訊, 也就是先建立檔案, 再取得檔案建立的時間, 然後重新命名, 不過DIR 無法看見秒數, 否則此法應該最方便且準確, 然而免費工具也是很多, 例如以下:
    Batch Function Library for Windows NT4/2000/XP/2003


    此文章於 2011-01-25 07:27 PM 被 FYI 編輯。

類似的主題

  1. 【問題】windows的執行 如何執行呢?
    作者:chan15 所在討論版:-- Windows 討 論 版
    回覆: 8
    最後發表: 2006-05-13, 08:11 PM
  2. 【軟體】Windows XP的執行身份
    作者:ghow 所在討論版:-- Windows 討 論 版
    回覆: 0
    最後發表: 2005-05-12, 11:24 AM
  3. 請問256MB*2跟512MB*1的執行效率??
    作者:taifeng 所在討論版:-- 電 腦 硬 體 討 論 版
    回覆: 33
    最後發表: 2003-03-02, 11:08 PM
  4. 我ㄉ硬跌現在只要安裝EXE的執行檔.........
    作者:SUKA 所在討論版:-- HELP ME 電 腦 軟 硬 體 急 救 版
    回覆: 4
    最後發表: 2002-01-27, 07:36 PM

 

批次檔點廣告

windows 8 & 重新啟動寫成bat

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •