2016-02-16 123 views
0

刪除複製的快捷方式我目前使用此代碼從一個文件夾複製快捷方式在服務器上爲C:\用戶\桌面:批處理文件從公共桌面

if not exist "%1" md "%1" 
copy /y "%~dp0PlaceShortcutsHere\*.*" "%1" 

此副本的所有快捷方式我的文件夾中放置到桌面。

我現在需要一種方法來刪除這些,請記住源文件夾中的快捷方式可以隨時間而改變。

有沒有辦法比較桌面和服務器上的快捷方式,只刪除兩個文件夾中存在的快捷方式,而只能從計算機的桌面上刪除這些快捷方式?

這些快捷方式不是機器桌面上的所有快捷方式,還有其他快捷方式,因此希望僅刪除兩個位置中存在的快捷方式。我還需要這樣做,因爲服務器上存在的快捷方式將根據需要添加或刪除。

這是通過SCCM 2007/12部署的,但我想先在本地進行測試。

是的,使用GP會更容易,但是我們使用的GP已停止工作,所以我需要一種部署快捷方式的備份方式。

回答

0

花了一些時間,但我自己找到了答案。如果將來對任何人有用,請發佈此信息。

dir "%~dp0PlaceShortcutsHere\*" /a /b /-p /o:gen>>"%~dp0ShortcutList_%date:~-4,4%%date:~-7,2%%date:~-10,2%.txt" 
Pushd \\<Server>\<Share> 
for /F "delims=" %%G in (ShortcutList_%date:~-4,4%%date:~-7,2%%date:~-10,2%.txt) DO Del "C:\Users\Public\Desktop\%%G" 
del "%~dp0ShortcutList_%date:~-4,4%%date:~-7,2%%date:~-10,2%.txt" 

其分解:

dir "%~dp0PlaceShortcutsHere\*" /a /b /-p /o:gen>>"%~dp0ShortcutList_%date:~-4,4%%date:~-7,2%%date:~-10,2%.txt" 

上面創建的,在它的快捷方式的名稱的文本文件,由下一行引用。

Pushd \\<Server>\<Share> 
for /F "delims=" %%G in (ShortcutList_%date:~-4,4%%date:~-7,2%%date:~-10,2%.txt) DO Del "C:\Users\Public\Desktop\%%G" 

上述映射服務器/股,該文件是暫時,然後使用「FOR/F」循環獲取文件名,然後刪除它們。

del "%~dp0ShortcutList_%date:~-4,4%%date:~-7,2%%date:~-10,2%.txt" 

最後,這行刪除了創建的文本文件。

當文件夾內容不斷變化時,它會很有用,它會創建一個最新的文件列表,然後再刪除列表,避免混淆。

%date:~-4,4%%date:~-7,2%%date:~-10,2% 

最後,這個小行會輸入當前日期到文本documet的文件名,所以應該最後刪除行不行,你可以看到它的日期。在猜測中,我也會認爲將它放在路徑中會使腳本只選擇當天的文件,而不是其他任何文件,但我沒有測試過。

請糾正我,如果我在任何錯誤。