【求助】DOS 下的 Batch File 問題





頁 : [1] 2

Man
2004-01-28, 05:17 PM
大家好~

是這樣的,在 Window 2000 的 DOS 下,如果我輸入 echo %date% 是會列出當天日期...
但是它的格式總是 Wed 28.01.2004 ,我怎樣能在格式中清除掉那個 Wed 呢?

另外,這個 command 是可以看到當天的日期,但是例如我想看昨天的日期,那又應該怎樣呢?

謝謝各位的指教!




ulimie
2004-01-28, 05:34 PM
MS DOS 的 date 指令從以前的 DOS 2.0 版到現在,
一向就不支援您的這種需求.

除非自己寫個小程式來做這件事,
以 pure DOS 角度來說: NO WAY!

Man
2004-01-28, 05:45 PM
最初由 ulimie 發表
MS DOS 的 date 指令從以前的 DOS 2.0 版到現在,
一向就不支援您的這種需求.

除非自己寫個小程式來做這件事,
以 pure DOS 角度來說: NO WAY!

真多謝你的指導,
...那麼我該怎樣去寫這個程式呢?
用 VB 會是最簡單的嗎?
因為其實我的目的是要有一個在 window 下跑的 script ,
配合 ntbackup 去做備份...
但是因為 folder 名稱會以每天的日期來命名,例如 20040128 ,而我就是要在今天備份昨天的東西:即 20040127 ,那麼我該怎樣寫?用什麼寫是最恰當呢?

本來是打算寫 batch file 的...但現在不行了...

望能再指點指點!

ulimie
2004-01-28, 06:00 PM
您的這個問題, 看過很多人提出過了,
真的, 不是不回答你, 而是, 要由您自己來回答.

>用 VB 會是最簡單的嗎?
適合您的答案: 您最上手的程式語言是什麼呢?
說的出來, 那, 就是他了!!

>那麼我該怎樣寫?用什麼寫是最恰當呢?
每種程式語言都有他抓系統日期的指令,
抓到答案, 拿來運算, 看要加一天還是減一天,
得到的結果, 把他當做建檔的檔名...
不就這樣嗎?

Man
2004-01-28, 06:10 PM
最初由 ulimie 發表
您的這個問題, 看過很多人提出過了,
真的, 不是不回答你, 而是, 要由您自己來回答.

>用 VB 會是最簡單的嗎?
適合您的答案: 您最上手的程式語言是什麼呢?
說的出來, 那, 就是他了!!

>那麼我該怎樣寫?用什麼寫是最恰當呢?
每種程式語言都有他抓系統日期的指令,
抓到答案, 拿來運算, 看要加一天還是減一天,
得到的結果, 把他當做建檔的檔名...
不就這樣嗎?

嗯~我也明白...
其實是因為我基本上除了 VB ,根本就沒有踫過其他的程式了...
不過只是輸出名稱...我想不會太難吧..

無論如何謝謝你的指點!

ulimie
2004-01-28, 06:23 PM
我個人認為, 只要有挑戰的決心,
(不弄出來, 誓不干休....), 就一定弄得出來的.

祝您成功!

C.C.
2004-01-28, 07:13 PM
有一個 DOS 程式可以取得 DATE/TIME, 不過在 NT/2000/XP 比較麻煩.
請參考 http://www.ferg.org/fdate/index.html 及此網頁的 "Problems running Fdate under Windows NT or Windows 2000"

範例:
Fdate /Ff /Occyy-mm-dd /P"@SET Fdate=" > JUNKTEMP.BAT
call JUNKTEMP.BAT
del JUNKTEMP.BAT
ECHO %Fdate%

C.C.
2004-01-28, 07:50 PM
Fdate 是 DOS 程式, 所以可能會切換 Codepage 造成一些困擾
你可以用另一個 WIN32 Console Program
http://www.smile-datentechnik.de/main_sw_date2env.html

範例:
Date2Env -F "@SET cdate=%Y-%m-%d" > JUNKTEMP.BAT
call JUNKTEMP.BAT
del JUNKTEMP.BAT
ECHO %cdate%

Man
2004-01-29, 11:46 AM
最初由 C.C. 發表
Fdate 是 DOS 程式, 所以可能會切換 Codepage 造成一些困擾
你可以用另一個 WIN32 Console Program
http://www.smile-datentechnik.de/main_sw_date2env.html

範例:
Date2Env -F "@SET cdate=%Y-%m-%d" > JUNKTEMP.BAT
call JUNKTEMP.BAT
del JUNKTEMP.BAT
ECHO %cdate%

非常的謝謝你的回覆,
但是如果我須要 echo 的是昨天的日期呢?
這好像是不行啊...

望能再指點指點!

C.C.
2004-01-29, 12:27 PM
如果要計算就只能用 Fdate, 你可以參考 Fdate.doc 或直接執行 Fdate.exe 不帶參數

範例:
Fdate /Fsub /N1 /Occyy-mm-dd /P"@SET Fdate=" > JUNKTEMP.BAT
call JUNKTEMP.BAT
del JUNKTEMP.BAT
ECHO %Fdate%