2013-10-11 52 views
0

是否有任何批處理腳本可用於運行保存在系統中的文件(例如:C:\ Program Files \ abc.exe)當usb插入時運行文件的批處理文件

我在想什麼是這個批處理腳本在執行時會添加或修改某些註冊表項,從而在插入pendrive時啓動系統中的文件(這種情況下爲C:\ Program Files \ abc.exe)

+0

一個簡單的方法是讓它每x秒/分鐘運行一次,將驅動器號列表保存到一個文件中,然後查看驅動器號的大小是否在調用之間改變。雖然可能有更直接的方法,可能使用.vbs文件 – SmokeyPHP

+0

我假設你禁用了'autorun'? – ldrumm

回答

0

我會添加到SmokeyPHP的答案,你可以把一個識別文件的pendrive。有獨特名字的東西。按計劃運行的腳本可以枚舉可用驅動器並查找該文件名。它看起來並不是非常高效,但我不知道USB事物被添加的觸發器。

1

這不是一個批處理解決方案,但是WMI具有內置的功能,您可以使用它。見this answer也有類似的問題。

在你的情況下,代碼如下:

$query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2" 
Register-WMIEvent -Query $query -Action { invoke-item "C:\Program Files\abc.exe"} 

如果你需要尋找(或過濾)具體pendrives,更多的工作將參與。

+0

我是wmi的新手,我將上面的腳本保存爲wmi.vbs並嘗試打開它,但顯示以下錯誤「Line:1; Char:1; Error:invalid Character; Code:800A0408; Source:Microsoft VB .. 「 – Eka

+0

因爲它不是VBScript,所以它是PowerShell。 – alroc