作者newclicker (Newclicker)
看板EzHotKey
標題Fw: [批次] 批次語法取得隨身碟代號
時間Tue Jan 15 03:20:22 2013
※ [本文轉錄自 EZsoft 看板 #1Gyub4CZ ]
作者: newclicker (Newclicker) 看板: EZsoft
標題: Re: 4、批次語法取得隨身碟代號
時間: Mon Jan 14 12:27:42 2013
※ 引述《mlev (大地彩妝師)》之銘言:
: 想要寫個批次檔將檔案備份到隨身碟
: 但隨身碟代號會因插在不同電腦而不同
: 因此想求問
: 有什麼方法可以取得隨身碟代號呢?
首先在你的隨身碟上面建立一個檔案 例如 usbdsk.flg
這樣在不同電腦間就不用煩惱隨身碟代號會不同
這邊為了方便modified各種功能,利用三個批次檔達成
AutoSearch.bat用來自動搜尋windows所有可能的磁碟機代號
checku.bat 用來確認是否存在usbdsk.flg這個檔案,並將隨身碟代號變數設為%upan%
func1.bat 執行你要的功能
寫完你要的func1.bat,
以後只要執行Autosearch.bat就可以完成你要的備份或其他功能
AutoSearch.bat
@echo off
for %%i in (z,y,x,w,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c) do call
checku.bat %%i
rem
(以上從 for 到 %%i 為同一行)
rem 用來自動搜尋windows所有可能的磁碟機代號
checku.bat
@echo off
set upan=
if not exist %1:\usbdsk.flg goto ext >nul 2>nul
set upan=%1
func1.bat
:ext
rem 用來確認是否存在usbdsk.flg這個檔案
rem 並將隨身碟代號變數設為%upan%
func1.bat (內容為你要的功能,例如把C:\temp 備份到隨身碟:\temp)
@echo off
rem 執行你要的功能
copy c:\temp %upan%:\temp\
--
女子徵友網 要帥 有車|████
█████████▕
搜尋▏
進階搜尋 | 使用偏好
▇▇  ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄
搜尋: ⊙所有男生 ○歪國人 ○宅宅 ○台灣男生
所有網頁 約有 1項符合要帥 有車的查詢結果,以下是第 1項。 共費0.01秒。
您是不是要找: 象棋 φtaipingeric
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.34.163.231
※ 編輯: newclicker 來自: 1.34.163.231 (01/14 12:47)
1F:→ ThisIsNotKFC:高手! 01/14 12:59
2F:推 chinoyan:為什麼不寫成一個BAT檔,要分三個 01/14 19:58
3F:→ CP64:可讀性比較高吧 01/14 20:18
4F:→ bestpika:bat 不是在寫程式啊XD 01/14 21:11
5F:推 CP64:就算是script也是要顧及到維護吧030 01/14 22:44
板友果然內行,就是因為是寫批次檔,所以要注意降低維護的門檻
(目標就是要讓不會寫程式的使用者都能夠輕易修改)
通通寫在一個檔案裡面,goto來goto去的,個人不太喜歡
就算寫出能夠彰顯自己功力,但卻讓大家難以修改/客製化的程式
這樣的程式碼等於一出生就宣告死亡,因為除了作者之外不會有人想幫忙改版
還不如寫出能讓小學生能看得懂並能簡單修改的程式碼更讓人覺得有成就感
之所以分成這三個檔案代表最常需要客製化的三個環節
AutoSearch.bat大致上沒有修改的必要(如果要加上軟碟機,那就把a,b加上去)
checku.bat單獨出來,這樣使用者如果希望把
usbdsk.flg改成其他五花八門的名字,
就只要修改這個檔案就好。
另外更進階的用法是,利用不同的名字,可以做到不同隨身碟之間的備份與同步
而不會受到換了別台電腦就搞不清楚哪一個磁碟是來源,哪一個磁碟是目的
ex.來源隨身碟就放個
uSource.flg,目的隨身碟就放個
uBackup.flg
來源硬碟1 就放個
h1Sourc.flg,來源硬碟2 就放個
h2Sourc.flg
func1.bat
func2.bat
......... 這樣子分的原因是考慮到後續工作可簡單可複雜,比如說有同步檔案需求的話
前後步驟就會有其依存性關聯,同一個檔案內goto來來去去
再加上多重來源多重目的之間的備份和同步,絕對會讓想修改的人翻桌
再來如果考慮到可以搭配開放源碼的FreeFileSync命令列功能(好用),
這樣子分開寫不但清楚,備份、比對、同步功能也就可以好好發揮。
當然我不認為我的解法就是最好的,有其他構想的人自然是很歡迎一起討論。
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: newclicker (1.34.163.231), 時間: 01/15/2013 03:20:22
※ 編輯: newclicker 來自: 1.34.163.231 (01/15 14:27)
6F:推 willterous:模組化設計讚!(沒看完但有懂) 06/04 13:36