2016-01-28 21 views
1

我已經使用linux工具DU創建了下面的腳本以獲取C:\ Users的文件夾大小。該腳本通過GPO分發給所有用戶。爲每個腳本實例創建文件

xcopy \\0.0.0.0\netlogon\gnu-core-utils\du.exe C:\profile-size-script\ /i /s /Y 
xcopy \\0.0.0.0\netlogon\gnu-core-utils\libintl3.dll C:\profile-size-script\ /i /s /Y 
xcopy \\0.0.0.0\netlogon\gnu-core-utils\libiconv2.dll C:\profile-size-script\ /i /s /Y 
C: 
cd C:\profile-size-script 
du -hs C:\users\* > \\0.0.0.0\userfolder\%username%.txt 

線說明如下:

  1. 稱爲du.exe到位置C複製文件:\輪廓尺寸腳本
  2. 副本叫libintl3.dll到同一個位置的文件。
  3. 副本文件名爲libiconv2.dll
  4. 更改爲驅動器C:如果cmd從另一個驅動器號開始。
  5. 更改爲相同的文件夾大小
  6. 使用DU獲取文件夾大小並將輸出回顯到\ 0.0.0.0 \ userfolder \%username%.txt。

的問題是,這個腳本不爲每個用戶創建一個新的文件,但被追加首先創建的文件%USERNAME%的.txt

回答

2

我想你希望做這樣的事情:

xcopy \\0.0.0.0\netlogon\gnu-core-utils\du.exe C:\profile-size-script\ /i /s /Y 
xcopy \\0.0.0.0\netlogon\gnu-core-utils\libintl3.dll C:\profile-size-script\ /i /s /Y 
xcopy \\0.0.0.0\netlogon\gnu-core-utils\libiconv2.dll C:\profile-size-script\ /i /s /Y 
cd /d C:\profile-size-script 
for /d %%u in (c:\users\*) do (du -hs C:\users\* > \\0.0.0.0\userfolder\%u%.txt) 

FOR /D循環讀取通過每個文件夾和每個文件夾(%%u)執行你的命令du.exe找到。查看FOR /?瞭解更多信息和其他可能性。

附加說明:CD /D命令允許您同時更改驅動器號和目錄。或者,你可以完全跳過C:CD行,如果你甚至沒有使用這樣的顯式路徑改變目錄中運行你的命令:

xcopy... 
for /d %%u in (c:\users\*) do (
    C:\profile-size-script\du.exe -hs C:\users\* > \\0.0.0.0\userfolder\%u%.txt) 
+0

非常感謝您的回覆Wes。我確實使用了'CD/D',但是我使用我的解決方案解決了我的問題。 – joebegborg07

0

我解決了這個通過創建一個新的文件作爲建議將創建一個txt答案C:\ users *中每個文件夾的文件。

xcopy \\0.0.0.0\netlogon\gnu-core-utils\du.exe C:\profile-size-script\ /i /s /Y 
xcopy \\0.0.0.0\netlogon\gnu-core-utils\libintl3.dll C:\profile-size-script\ /i /s /Y 
xcopy \\0.0.0.0\netlogon\gnu-core-utils\libiconv2.dll C:\profile-size-script\ /i /s /Y 
cd /d C:\profile-size-script 
copy NUL \\0.0.0.0\userfolder\%username%.txt 
du -hs C:\users\* > \\0.0.0.0\userfolder\%username%.txt 

每次劇本是根據登錄的用戶,這是卓有成效的,我運行它拷貝NUL文件,並將其重命名。然而我做了C:替換cd /d(其中更改驅動器和目錄)。

相關問題