2008年2月23日 星期六

快速處理動物機的"檔產"

動物機,是一種俗稱,指的是裝有驢子或其他的P2P下載軟體的電腦,他們的功用就是一天24小時不停猛力抓檔,提供給主人觀看。由於我不看動畫,我家裡的動物機很輕鬆,不太常工作,但有時候載完一堆的檔案時,還要把他們透過網路芳鄰傳到我的主電腦就覺得很麻煩。所以我寫了一個bat檔放在主要的電腦上,他能夠定時或手動到我的動物機上把我的檔案抓回來並自動刪除動物機上已經複製過來的檔案。語法如下:

@echo off
rem This is a copy program that moving files.
rem You can use schedule to make it run in a routine.
xcopy \\NEWTON-X\movies\*.* "D:\temp" /s /e /y
if errorlevel 5 goto writeerr
if errorlevel 4 goto lowmemory
if errorlevel 2 goto abort
if errorlevel 1 goto notexist
if errorlevel 0 goto complete

:writeerr
echo Hard-disk occured an error when I'm writting.

:lowmemory
echo Insufficient memory to copy files or
echo invalid drive or command-line syntax.
goto exit

:abort
echo You pressed CTRL+C to end the copy operation.
goto exit

:notexist
echo Files/Folders not exist.
goto exit

:complete
echo Moving accomplished.
del \\NEWTON-X\movies\*.* /Q
goto exit

:exit
@echo on

注意到其中的NEWTON-X和movies是動物機的電腦名稱和檔案資料夾,D:\temp是我本機上用來存放抓完檔案的資料夾。這段程式碼寫的仍然不算完美,但基本的錯誤處理都有做了,譬如本機的硬碟爆滿,那麼就會顯示出錯誤訊息而不會抓檔。如果有興趣要用這支小程式,有兩個步驟:

  1. 把裡面的\\NEWTON-X\movies\*.*(有兩個地方)和D:\temp分別改成自己的動物機和工作機
  2. 存成bat檔放在桌面(ex: getfiles.bat),在你需要移動檔案的時候點兩下執行
p.s. 我預設是將所有的檔案都抓過來,如果只要抓avi影片檔,可以把上面的*.*改成*.avi,依此類推。 p.p.s. 可以利用附屬應用程式裡面的工作排程器設為每半個鐘頭就自動檢查。 p.p.p.s. 這檔案也可用再將一個資料夾裡面的東西複製到另一個資料夾裡做備份,記得把del那行拿掉即可 p.p.p.p.s. 打完收工......