试图删除本地应用程序数据,适用于任何计算机

Trying to delete local App data, made to work with any computer

制作一个 powershell 脚本进入 AppData\Default\Cache 目录并清除它,它适用于我制作的系统。然而,这将用于数百台不同的计算机,我需要一些方法来使目录适用于所有这些计算机。

我试过使用:

cd %AppData%

$pop = New-Object -ComObject Wscript.Shell

$num = $pop.Popup("This will close *confidential*. Are you sure?",0,"Clear Cache",0x1)

if ($num -eq 1) 
{
  $c = get-process -name "chrome" |stop-process -force ;
  remove-item 'C:\Users\RegisterA\AppData\Local\Google\Chrome\User Data\Default\Cache' -recurse -force ;
  start-process -filepath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
} 

else {exit}

正如您所看到的,此代码是为 RegisterA User 编写的,但有些计算机会有 RegisterB、RegB、StationA 等。我需要找到一种方法,使它在所有系统上都能正常工作,而不必让员工输入在当前主机名中。

您可以从 LocalAppData 环境变量中检索本地 AppData 文件夹的路径:

if ($num -eq 1) 
{
  $c = get-process -name "chrome" |stop-process -force ;
  remove-item "$env:LocalAppData\Google\Chrome\User Data\Default\Cache" -recurse -force ;
  start-process -filepath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
} 

$env:LocalAppData 将自动替换为当前用户本地应用程序数据文件夹的路径。使用双引号 (") 而不是单引号 (') 很重要,否则路径将 而不是 被替换。

我还建议以同样的方式将 C:\Program Files (x86) 替换为 $env:ProgramFiles(x86),因为某些用户可能将此文件夹放在不同的位置。