我已经使用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
线条说明如下:
问题是这个脚本没有为每个用户创建一个新文件,而是附加了第一个创建的文件%username%.txt
答案 0 :(得分: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
循环读取每个文件夹,并为找到的每个文件夹(du.exe
)执行%%u
命令。查看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)
答案 1 :(得分:0)
我通过创建新文件解决了这个问题,因为建议的答案是为C:\ users *中的每个文件夹创建一个txt文件。
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
(更改了驱动器和目录)。