2016-12-18 51 views
0

我想我.bat文件後,我重命名文件夾Sources一個文件,該文件位於這裏跑重命名的任何文件啓動一個.bat文件:.bat文件 - 如何當我在一個特定的文件夾

C:\Users\UserName\Videos\Gameplays\HeroesOfTheStorm\Sources\ 

.bat文件位於相同的Sources文件夾中。

我該怎麼做,而無需手動雙擊.bat文件?我希望它在Sources文件夾中重命名文件後自動運行。

+0

是否有任何限制實現嗎?就像,你需要只使用Windows選項,或者你可以寫一個小程序運行來幫助你? – bracco23

+0

沒有限制。我想讓它在重命名文件後自動啓動。 – Reaper

+0

P.S. :如果我不需要編碼,那完全沒有問題。 – Reaper

回答

0

好吧,你可以用一個相當複雜的方式用windows工具來做到這一點。

首先,您需要啓用審計。

  • 運行GPEDIT,然後去:計算機配置 - > Windows設置 - >安全設置 - >本地策略 - >審覈策略 - >審覈對象訪問
  • 讓我猜成功和故障。
  • 現在轉到您要監控的文件夾,雙擊並轉到:安全選項卡 - >高級 - >審覈標籤
  • 向您的用戶(或某個組或類似用戶)添加一條規則,會爲重命名(沒有重命名事件,但你可以嘗試不同的組合,如文件創建,文件刪除或讀/寫屬性,你可以找到)
  • 之後,現在如果你有事件查看器,安全日誌,當您選擇的操作完成時,會出現一些Ids 4565/4663事件。
  • 最後一件事,打開任務計劃程序並創建一個新任務,將激活設置爲事件的觸發器和將運行蝙蝠的操作。

有些術語可能會有所不同,我的Windows不是英文的,所以我可能會翻譯錯誤的東西。此外,你可能會做一些測試,看看你是否正確設置了一切。

另一個選項可能是設置一個小應用程序來監視文件夾並相應地運行bat。你可以用Java或其他語言來做這樣的事情。

+0

感謝您的回答。不幸的是,我沒有GPEDIT,因爲它在Windows 10 Home版本中不存在。我不想下載這樣的東西,或者因爲我害怕我會打破某些東西而混亂它。我更喜歡現在雙擊.bat文件!也許我會在稍後找到另一種方式。 – Reaper

1
Set WshShell = WScript.CreateObject("WScript.Shell") 
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
Set MonitoredEvents = WMI.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE Targetinstance ISA 'CIM_DirectoryContainsFile' and TargetInstance.GroupComponent= 'Win32_Directory.Name=""C:\\\\Users\\\\David Candy""'") 
Do 
    Wscript.Echo MonitoredEvents.NextEvent.TargetInstance.PartComponent 
    WshShell.Run "cmd /c ""C:\folder\batchfile.bat""", 1, false 
Loop 

注意在目錄名稱中使用4 \ 1,但在其他地方使用。

它是一個vbs文件。它監視一個目錄,並且如果你在該目錄中重命名或創建文件,它將運行命令。 WITHIN 10表示每10秒測試一次。

Set WshShell = WScript.CreateObject("WScript.Shell") 
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
Set MonitoredEvents = WMI.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE Targetinstance ISA 'CIM_DirectoryContainsFile' and TargetInstance.GroupComponent= 'Win32_Directory.Name=""C:\\\\Users\\\\David Candy""'") 
Do 
    WMIPath = Split(MonitoredEvents.NextEvent.TargetInstance.PartComponent, "=")(1) 
    FilePath = Replace(WMIPath, "\\", "\") 
    WshShell.Run "cmd /k echo File Renamed is " & FilePath & "&" & Filepath 
Loop 
+0

不知道在哪裏輸入,以及它確實做了什麼。但是,問題是我不想再次輸入代碼。我希望每次在「Sources」文件夾中重命名文件時,它都會運行我製作的bat文件。 – Reaper

相關問題