2015-12-01 11 views
0

我們有一批新電腦,我們目前備份本地配置文件的手。我已經編寫了一個腳本來備份每個用戶配置文件的主要文件,但有人指出我們的用戶使用便箋並希望備份這些文件。批處理文件複製所有用戶配置文件應用程序數據

在測試我的代碼中使用:

XCOPY "C:\USERS\%username%\AppData\Roaming\Microsoft\Sticky Notes" %Input%\%computername%\AppData\ /Y 

我知道這將只複製人的時候登錄。我曾嘗試使用*.*代替%username%,但沒有運氣。有沒有一種方法可以將每個用戶.snt文件複製到一個用他們的用戶名命名的文件夾中?

%輸入%是外部驅動器盤符&冒號(例E :)輸入的是誰做備份的技術人員。

+1

你可能會在感興趣的'/ d %% d( 「C:\ USERS \ *」)做XCOPY/Y 「%%〜FD \應用程序數據\漫遊\微軟\即時貼」「%輸入%\%計算機%\ %%〜NXD \ AppData的\ %%〜NXD \'(使用''%,而不是'%%如果直接在命令提示符下輸入);我在顯示的用戶名的目標增加了一個目錄級別... – aschipfl

+0

@aschipfl可以提交此作爲答案,這工作出色謝謝你這麼快asnwer。 – ASM2701

回答

1

*?這樣的通配符只能用於路徑的最低級別,所以C:\USERS\*.*\AppData\Roaming\Microsoft\Sticky Notes不起作用。但是,C:\USERS\*的作品。

所以,你可以使用for /D通過所有的用戶目錄走路,像這樣:

for /D %%D in ("C:\USERS\*") do (
    xcopy /I /Y "%%~fD\AppData\Roaming\Microsoft\Sticky Notes\*.snt" "%Input%\%ComputerName%\%%~nxD\AppData" 
) 

我追加模式*.snt到源路徑,你在你的問題中提到這樣的文件。

我也加入其中是當前迭代的用戶名的目標路徑的目錄級別%%~nxD,以避免重複路徑的麻煩。

最後我添加了/I開關,它告訴xcopy目的地是一個目錄,以避免這樣的提示。

直接在命令提示符下使用上面的代碼,就這樣寫:

for /D %D in ("C:\USERS\*") do xcopy /I /Y "%~fD\AppData\Roaming\Microsoft\Sticky Notes\*.snt" "%Input%\%ComputerName%\%~nxD\AppData" 
相關問題