在 Batch 而不是 PowerShell 中执行相同的任务:迭代所有用户并找到 %temp% 文件夹以删除其中的文件

Doing same task in Batch instead of PowerShell: iterate all users and find %temp% folder to delete files inside

我有一个这样工作的 powershell 脚本:它删除 C:\users\%user1,2,3...etc%\temp 中的所有文件或文件夹。它遍历用户文件夹中的每个用户并查找它是否有临时文件夹然后删除里面的东西。

我需要知道在 Batch 中完成此操作以避免兼容性问题的最佳方法是什么?

$users = Get-ChildItem C:\Users
foreach ($user in $users){
$folder = "$($user.fullname)\AppData\Local\temp"
   If (Test-Path $folder) {
     Get-ChildItem -Path $folder -Include * | remove-Item -recurse 
   }
}

您可以在批处理文件中执行以下操作以循环访问 C:\USERS 并删除 TEMP 文件夹中的项目:

for /d %%F in (c:\users\*) do del "%%F\appdata\local\temp\*" /s /q

如果你运行在命令行中使用它,只使用一个百分号,在批处理文件中使用它时,使用两个百分号。

此命令循环遍历 C:\USERS 中的所有目录,然后使用静默和递归参数 运行 对 AppData\Local\Temp 文件夹执行 DEL。这假定您的用户配置文件存储在 C:\USERS 中,如果您有理由需要到处查找配置文件,您将需要调整批处理文件以首先从注册表中查找配置文件路径。

与您在网上找到的所有代码一样,在 运行投入生产之前进行测试。