Выполнение той же задачи в пакетном режиме вместо PowerShell: выполните итерацию всех пользователей и найдите папку% temp% для удаления файлов внутри - PullRequest
0 голосов
/ 27 августа 2018

У меня есть сценарий powershell, который работает следующим образом: он удаляет все файлы или папки в C: \ users \% user1,2,3 ... etc% \ temp. Он просматривает каждого пользователя в папке users и определяет, есть ли у него временная папка, затем удаляет содержимое внутри.

Мне нужно знать, как лучше всего это сделать в пакетном режиме, чтобы избежать проблем с совместимостью?

$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 
   }
}

1 Ответ

0 голосов
/ 27 августа 2018

В пакетном файле можно выполнить следующие действия, чтобы просмотреть C: \ USERS и удалить элементы из папки TEMP:

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

Если вы запускаете это в командной строке, используйте только один знак процента, при использовании командного файла используйте два знака процента.

Эта команда перебирает все каталоги в C: \ USERS, а затем запускает DEL для папки AppData \ Local \ Temp, используя тихие и рекурсивные параметры. Предполагается, что ваши профили пользователей хранятся в C: \ USERS. Если у вас есть основания искать везде профили, вам нужно настроить пакетный файл, чтобы сначала найти пути к профилям из реестра.

Как и для всего кода, который вы найдете в сети, протестируйте его перед запуском в производство.

...