2012-06-27 34 views
1

想想看,我有一個包含以下信息的文本文件:根據特定文本執行操作? Windows腳本

TIMESTARTED=Thu Nov 17 09:43:47 GMT 2011 
START-OF-DATA 
TEXT TEXT TEXT 

的TIMESTARTED線是在文本文件中的特定行,我需要建立某種形式的驗證,這裏的日期是正確的前正在執行特定的任務。我基本上想讓它查看計算機上的日期,看看它是否與TIMESTARTED =之後的日期相對應,如果它應該運行batscript,並且它不運行它應該運行不同的bat腳本。

我不知道這是可能的,還是需要廣泛的編程?我寧願如果可以通過在Windows中編寫腳本來做到這一點。任何人都可以讓我走向正確的道路嗎? (請記住,我不是程序員,所以儘可能簡單)

+0

是否只有一個線與'TIMESTARTED'在你的文本文件?你可以更改條目的格式,尤其是從「Thu Nov 17」到「17.11.2012」之類的日期格式嗎? – jeb

回答

0

您可以先選擇findstr,然後從%date%與當前日期進行比較。

setlocal EnableDelayedExpansion 

for /F "tokens=2,3 delims= " %%A in ('findstr /B "TIMESTARTED" html_2.txt') do (
    set "monthName=%%A" 
    set "day=%%B" 
) 
set "year=%date:~-4%" 
SET map=Jan-01;Feb-02;Mar-03;Apr-04;May-05;Jun-06;Jul-07;Aug-08;Sep-09;Oct-10;Nov-11;Dec-12 
SET "v=!%map:*%monthName%-=!" 
set "month=!v:~0,2!" 

set "timestarted=%day%.%month%.%year%" 
if "%timestarted%" == "%DATE%" (
    echo The date is correct 
) ELSE (
    echo wrong date %timestarted% 
) 
+0

非常感謝!對它做了一些細微的修改,然後按照我的想法開始工作...所以基本上令牌就像是「分隔符」,並且您設置了這兩個空格,然後將2,3設置爲要查找的第二個和第三個值。 %% A表示第一個值%% B表示第二個... %% C表示第三個?我糾正還是困惑? – user829084

+0

是的,你幾乎是對的,但因爲''tokens ='從2開始,%% A是_second_標記,%% B是第三個標記,如果''tokens = 2-4',那麼%% C將是第四個標記。 – Aacini

+0

@jeb:爲什麼你不喜歡數組符號? :-) – Aacini

1

這是傑布的溶液略經修改成使用陣列而不是圖串的,只是爲了比較目的(並促進在批處理中使用的陣列的):

setlocal EnableDelayedExpansion 

for /F "tokens=2,3 delims= " %%A in ('findstr /B "TIMESTARTED" html_2.txt') do (
    set "monthName=%%A" 
    set "day=%%B" 
) 
set "year=%date:~-4%" 
for %%a in ("Jan=01" "Feb=02" "Mar=03" "Apr=04" "May=05" "Jun=06" "Jul=07" "Aug=08" "Sep=09" "Oct=10" "Nov=11" "Dec=12") do set %%~a 
set "month=!%monthName%!" 

set "timestarted=%day%.%month%.%year%" 
if "%timestarted%" == "%DATE%" (
    echo The date is correct 
) ELSE (
    echo wrong date %timestarted% 
) 
+0

+1,更好(更清楚)的版本,比我的 – jeb

+1

@jeb:非常感謝jeb。您是否知道使用不存在標籤的'call'命令不會中止程序執行? http://stackoverflow.com/questions/11235153/how-to-find-if-a-string-is-in-a-list-of-strings-in-a-dos-batch-file/11235782#comment14819276_11235782 – Aacini

相關問題