2009年1月6日星期二

DOS Command 你仲記得幾多

DOS Command 你仲記得幾多?我想大部份年輕的腦友都不懂DOS command,今時今日會用linux的command可能比用DOS多了,但是我還是喜歡用DOS command去工作。

由於工作關係很多時要大量改filename,copy 特定的filename,做一點兒的automated schedule job,如果要下下寫programme去做會很花時間。而我的做法是先試寫一條command,例如要rename a1.txt ... a1000.txt to a0001.txt ... a1000.txt 要在前面補0,如果要一個個改都好花時間,特登寫programme又好似小題大做,但用command line就快得多,先用dir /b > list.txt去capture現有的filename,再copy filename list到Excel裡,再用Excel的substring指命做出1000條ren command
i.e.
ren a1.txt a0001.txt
ren a2.txt a0002.txt
...
ren a1000.txt a1000.txt

跟住一copy and paste到command prompt,不需十分鐘由零到完成,加上這方法彈性大,copy,rename等都可以。除此之外,我還寫了一點小小java programme,可以將一個大的pdf分做n分,又或者將幾個pdf合成一個,配合dos的command平時要很多功夫的工作就變得簡單。

如果你地有興趣借用我的java小programme就email我la.

除了化繁為簡外,command line還可以做unattended schedule job,好似寫log,今日發現了一個幾好用的command,就係用batch file取用電腦的日期時間,很多時寫log都要寫日期時間,如果小小野都寫java好似殺雞用牛刀。以下是找取日期的command:

test.bat:
--bof--

For /f "tokens=1-3 delims=/ " %%a in ('date /t') do (set mydate=%%a%%b%%c)
each %mydate%

--eof--

行完這個batch後就會得到今日日期即20090106,係唔係好簡單呢,但要留意自己電腦(windows)的日期格式,不同的格式可能有唔同效果。只要將%mydate%多加利用就可以做到很多的東西。

如果想做090106就可以用%mydate:~2,6% 即第2個字母之後取6個字;如果想做20090106A就可以用%mydate%A;如果想做090106A就可以用%mydate:~2,6%A;試試下就會明。

你看dos command真的很簡單易用,其實command line in windows還可以借用VBScript加強功能,但我不太熟識,有機會研究到有好野再同大家分享。今日係咁多先。希望對看了的讀者有點啟發,朋友們如果唔明又想學就話我知la。

沒有留言: