стало любопытно - скормил этот вопрос ChatGPT:
Версия бат/цмд:
Нужен скрипт bat или cmd, который позволит производить одновременную чистку temp файлов сразу в нескольких указанных директориях и при этом оставить еще 3 - 4 ( больше одной папки) определенные папки (по названию), которые удалять не нужно.
Вы можете создать скрипт .bat или .cmd, который будет удалять файлы из указанных директорий, но не удалять файлы из указанных исключенных папок. Для этого вы можете использовать команду for и утилиту del в Windows.
Пример скрипта:
@echo off
rem Указываем директории, в которых нужно удалять файлы
set directories=C:\Temp1 C:\Temp2 C:\Temp3
rem Указываем исключенные папки
set excluded_folders=Excluded1 Excluded2
rem Цикл по всем указанным директориям
for %%d in (%directories%) do (
rem Цикл по всем файлам в директории
for /f "delims=" %%f in ('dir /b /s "%%d\*"') do (
rem Проверяем, что файл не находится в исключенной папке
set skip=0
for %%e in (%excluded_folders%) do (
if /i "%%f"=="%%d\%%e" (
set skip=1
)
)
if %skip%==0 (
del "%%f"
)
)
)
echo Done!
Версия powershell:
Нужен скрипт powershell, который позволит производить одновременную чистку temp файлов сразу в нескольких указанных директориях и при этом оставить еще 3 - 4 ( больше одной папки) определенные папки (по названию), которые удалять не нужно.
Вы можете создать скрипт PowerShell, который будет удалять файлы из указанных директорий, но не удалять файлы из указанных исключенных папок. Для этого вы можете использовать команду Get-ChildItem и функцию Remove-Item в PowerShell.
Пример скрипта:
# Указываем директории, в которых нужно удалять файлы
$directories = "C:\Temp1", "C:\Temp2", "C:\Temp3"
# Указываем исключенные папки
$excludedFolders = "Excluded1", "Excluded2"
# Цикл по всем указанным директориям
foreach ($directory in $directories) {
# Получаем список файлов в директории
$files = Get-ChildItem -Path $directory -Recurse -Force -ErrorAction SilentlyContinue
# Цикл по всем файлам
foreach ($file in $files) {
# Проверяем, что файл не находится в исключенной папке
if ($excludedFolders -notcontains $file.Directory.Name) {
# Удаляем файл
Remove-Item -Path $file.FullName -Force -ErrorAction SilentlyContinue
}
}
}
Write-Output "Done!"