1

Windows 7 / 8 中的所有用户都有一个变量吗?例如,假设PC上的每个用户在他们的桌面上都有一个特定的文件夹,我想通过可以通过命令提示符执行的命令一次删除所有这些文件夹,这可能吗?

一个脚本在我们每个用户的本地 AppData 中为我们的 VPN 客户端放置了一个首选项文件,这使得 VPN 客户端在您启动客户端时自动输入一个地址。问题是这个地址现在已经过时了,我们使用一个新的。所以我想找到一种方法来执行一个命令,为我们所有的用户删除所有这些preferences.xml 文件。

我试过用谷歌搜索它,但我不认为所有用户都有一个变量。但我想我会在这里问一下。我曾希望类似于 'del C:\users\%ALLUSERS%\AppData\Local\example\preferences.xml' 的东西会起作用,但在谷歌搜索后似乎没有这样的东西。

4

1 回答 1

3

您可以使用 powershell 删除用户配置文件临时目录下的所有项目。如果您对将要采取的措施感到满意,请参阅以下解决方案并删除 Whatif 选项;

$users = Get-ChildItem c:\users | ?{ $_.PSIsContainer }
foreach ($user in $users){
    $userpath = "C:\Users\$user\AppData\Local\Temp"
    Try{
        Remove-Item $userpath\* -Recurse -Whatif -ErrorVariable errs -ErrorAction SilentlyContinue  
    } 
    catch {
        "$errs" | Out-File c:\temp\errors.txt -append
    }
}

对于 MS-DOS 解决方案,请在命令提示符下尝试:

for /f "delims=|" %f in ('dir /B /A:D-H-R c:\users') do echo "C:\Users\%f\AppData\Local\Temp\*"

在实际删除这些文件和目录的批处理文件中,它将变为:

for /f "delims=|" %%f in ('dir /B /A:D-H-R c:\users') do (rmdir "C:\Users\%%f\AppData\Local\Temp\" /s/q || del "C:\Users\%%f\AppData\Local\Temp\*" /s/q)
if not errorlevel 1 (
    echo "Finished with errors"
  ) else (
    echo "Finished without errors"
  )
)
于 2014-08-26T07:53:44.097 回答