| Принимает каждый элемент в конвейере и обрабатывает его как $_ |
| ————————————————– ———– |
| Преобразует весь текст в файле в верхний регистр. |
| Обрезает пробельные символы в начале и конце каждой строки в файле. |
Обрабатывает каждую строку в файле и выводит в новый файл. Настройте `команду для выполнения конкретных изменений:
Где-Объектное условие (псевдоним где или?):
Do-While петли итерации: $counterDo-Until Петли итерации: $counterDo-While Loop с условием в конце
Do-While петли (условие в конце) итерации: $counterDo-Until Loop с условием в конце
Do-Until Петли (условие в конце) итерации: $counterDo-While Loop с Break
Do-While Loop с Break итерации: $counter
Выйти из петлиОсновная для цикла
Цикл for с массивом
Выберите цикл (Для каждого элемента в массиве)
Цикл ForEach (Для каждого элемента в каталоге)
Цикл ForEach-Object (конвейер)
Цикл ForEach (Ассоциативный массив/хеш-таблица)
Пример 1: Цикл ForEach (Для каждого элемента в массиве)
Пример 2: Цикл ForEach (Для каждого элемента в диапазоне)
Пример 3: Цикл ForEach (Для каждого элемента в каталоге)
Пример 4: Цикл ForEach (Для каждой пары ключ-значение в хеш-таблице)
Пример 5: Цикл ForEach-Object (Для каждого объекта в конвейере)
Пример 1: Основной While Loop
While Loop итерации: $counterХотите продолжить? (Д/Н)Пример 3: Бесконечный While Loop с Break
Бесконечный While Loop итерации: $counter
Выход из петлиПример 1: Цикл While с условием
While Loop итерации: $counterПример 2: Цикл Do-While
Цикл Do-While итерации: $счетчикХотите продолжить? (Д/Н)Хотите продолжить? (Д/Н)Пример 5: Цикл While с условием Break
While Loop итерации: $counter
Выход из петлиГенерация диапазона чисел в обратном порядке от 10 до 1
Генерация диапазона букв от A до Z
Генерация четных чисел от 2 до 10 с шагом 2
Генерация диапазона чисел на основе переменных
| Дает методы и свойства объекта/cmdlet. |
| ——————————————- |
| Возвращает одно свойство имя каждого процесса. |
| Извлекает значения из свойств. |
| Отображает справку о функциях |
| ————————————– |
| Показывает более подробную справку о функциях |
Создает комментарий рядом с cmdlet:
Как найти тип данных
| Отображает System.String со своими объектами и свойствами. |
| —————————————————- ——- |
| Создает переменную A с целочисленным значением 12. |
| Отображает System.Int32 со своими объектами и свойствами. |
Удалить все файлы .txt в текущем каталоге, старше 7 дней:
Удаление файлов старше 30 дней в определенной директории
forfiles /s /m *.txt /d -30 /c cmd /c del @pathПеремещение всех файлов новее вчерашнего дня из папки C:\Temp в папку D:\Archive
forfiles /s /m * /d +0 /c cmd /c move @path D:\ArchiveКопирование всех файлов .jpg из папки C:\Photos в папку D:\Backup
copy C:\Photos\*.jpg D:\BackupКопирование всех файлов PDF из одной директории в другую
copy source\*.pdf destinationПечать имен всех txt файлов в директории
dir /s /b *.txtПереименование всех файлов .docx в текущей директории, начинающихся с Document_
ren *.docx Document_*.docxИзменение расширения всех файлов .txt на .bak в директории
ren *.txt *.bakРекурсивный список путей ко всем файлам в директории и её поддиректориях
dir /s /bЖурналирование имен и размеров всех .exe файлов в текущей и поддиректориях
dir /s /b *.exeВыполнение команды PowerShell для каждого файла в директории
foreach ($file in (Get-ChildItem)) { <Command> }Вывод последней даты изменения всех файлов в директории
dir /s /od /tfСоздание директории для каждого файла в директории (используя имя файла в качестве имени директории)
for %A in (*.*) do md %~nAДля каждой родительской папки рекурсивно получите все файлы и переместите их в родительскую папку, добавив номер к файлу для избегания конфликтов
Для каждой папки родителя ($Parent in $ParentFolders) {
Get-ChildItem -Path $Parent.FullName -Recurse | Where {!$_.PSIsContainer -and ($_.DirectoryName -ne $Parent.FullName)} | Для каждого { $FileInc = 1 Делать { Если ($FileInc -eq 1) {$MovePath = Join-Path -Path $Parent.FullName -ChildPath $_.Name} Иначе {$MovePath = Join-Path -Path $Parent.FullName -ChildPath $($_.BaseName)($FileInc)$($_.Extension)} $FileInc++ } Пока (Test-Path -Path $MovePath -PathType Leaf) Move-Item -Path $_.FullName -Destination $MovePath
}}
Рабочие решения
| Рабочие решения | Пошаговое устранение неполадок |
|---|---|
| Решение 1. Удаление файлов старше X дней через Проводник файлов | |
| Решение 2. Удаление файлов старше X дней с помощью команды ForFiles | Щелкните левой кнопкой мыши по основному меню Windows и найдите Командную строку. Нажмите …Полные шаги |
| Решение 3. Удаление файлов старше X дней с помощью PowerShell | Щелкните левой кнопкой мыши по кнопке основного меню Windows и найдите Windows PowerShell…Полные шаги |
Восстановление автоматически удаленных файлов с помощью программного обеспечения для восстановления файлов
Если вы ищете надежное программное обеспечение для восстановления данных, мы рекомендуем использовать EaseUS Data Recovery Wizard.
Это одно из самых мощных средств восстановления данных, обеспечивающее высокий уровень восстановления. Почему стоит выбрать эту программу для восстановления данных?
Он может восстановить неограниченное количество данных, удаленных, скрытых и потерянных. Этот инструмент также поддерживает восстановление разделов RAW.
Это также может быть инструментом для ремонта и восстановления поврежденных фотографий, видеозаписей и документов.
Поддерживается восстановление USB, SD-карты, камеры и карты памяти.
Шаг 1. Выберите накопитель и начните сканирование
Запустите EaseUS Data Recovery Wizard и наведите указатель мыши на раздел, где вы потеряли данные. Это может быть внутренний жесткий диск, внешний диск, USB или SD-карта. Затем нажмите Сканировать.
Шаг 2. Проверьте и предварительный просмотр отсканированных файлов
Используйте фильтр формата файла слева или в верхнем правом углу, чтобы сузить результаты сканирования, пока вы не найдете нужные файлы. Затем вы можете нажать кнопку Предпросмотр или дважды щелкнуть по файлу, чтобы просмотреть его содержимое, если хотите.
Шаг 3. Восстановите потерянные данные в безопасное место
Выберите флажок рядом с файлом и нажмите Восстановить, чтобы восстановить потерянные данные на безопасное место. Мы рекомендуем вам не хранить восстановленные данные на диске, где они были потеряны ранее.
Как удалить файлы старше X дней [Три решения]
Исправление 1. Удаление файлов старше X дней с помощью Проводника файлов
Шаг 1. Нажмите клавиши Win + E, чтобы открыть Проводник файлов.
Шаг 2. Перейдите в папку, содержащую ваши файлы. В этом примере мы перейдем в папку Загрузки.
Шаг 3. Теперь нажмите на выпадающие списки Дата изменения и выберите диапазон дат по вашему усмотрению, и он покажет все файлы в этом диапазоне дат.
Шаг 4. Выберите необходимый файл для удаления и нажмите кнопку Удалить на верхней панели.
Исправление 2. Удаление файлов старше X дней с помощью команды ForFiles
Разбор команды ForFiles
/p – указывает путь к началу поиска.
/s – указывает ForFiles искать внутри подпапок.
/d – указывает последнюю дату модификации файла.
/q – позволяет удалять папки без подтверждения.
Исправление 3. Удаление файлов старше X дней с помощью PowerShell
Как автоматически удалять файлы, старше X дней при помощи Планировщика задач
Шаг 1. Левым кликом нажмите кнопку Windows и найдите Панель управления, затем перейдите в раздел Система и безопасность и выберите опцию Инструменты Windows.
Шаг 2. Теперь нажмите на Планировщик задач, чтобы открыть окно Планировщика задач.
Шаг 3. В левой панели нажмите на Библиотека планировщика задач. Теперь нажмите на Создать задачу в правой панели.
Шаг 4. Теперь откроется новое окно с названием Создать задачу. На вкладке Общее назовите его по вашему усмотрению.
- Действие: Запустить программу
- Программа/сценарий: ForFiles.exe
- Добавить аргументы (необязательно): /p %userprofile%\Downloads/s /d -30 /c cmd /c del @file
Шаг 6. Измените путь к папке и количество дней на то, что вам нужно. Теперь перейдите на вкладку Триггеры вашей задачи и нажмите на кнопку Новая. В разделе Начать задачу выберите расписание в раскрывающемся списке и нажмите кнопку ОК. Укажите, когда вы хотите, чтобы задача запускалась.
Шаг 7. Пора перейти на вкладку Настройки! Здесь вам нужно включить опцию Разрешить запуск задачи по требованию и опцию Запустить задачу как можно скорее после пропуска запуска по расписанию. Теперь нажмите ОК, чтобы создать свою задачу. Теперь она автоматически удаляет файлы в соответствии с вашим установленным расписаниям и путем к папке.
Заключение
Здесь мы ответили на некоторые часто задаваемые вопросы, чтобы лучше прояснить вещи, что может вам очень помочь!
Как удалить файлы старше x дней в Linux?
Можно ли восстановить автоматически удаленные файлы в Windows 11?
Да, вы можете восстановить автоматически удаленные файлы в Windows 11. Однако для восстановления удаленных файлов в Windows 11 вам следует воспользоваться надежным инструментом для восстановления данных стороннего производителя – EaseUS Data Recovery Wizard.
- Запустите это программное обеспечение для восстановления и просканируйте свой ПК.
- Просмотрите удаленные файлы в Windows 11.
- Восстановите нужные файлы.
Как удалить файлы старше 30 дней в UNIX?
Как удалить файлы старше x дней автоматически с помощью PowerShell?
- Откройте PowerShell с правами администратора.
2. Type in Get-ChildItem –Path "C:\path\to\folder" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-X))} | Remove-Item to delete files automatically.


- Windows Support Forums
alternative browser
How to run ForFiles in Task Scheduler
rdwray
Oct 25, 2023
Local time
12:56 PM
Posts
165
OS
Windows 11 Pro; 21H2, Build 22000.1281
This will run in Task Scheduler and deletes the file, the problem is that it never stops running so none of the other tasks will run.
cmd.exe /c ForFiles /P "C:\Users\user\Desktop" /s /m "mpam-fe.exe" /c "cmd /c del @FILE"Last edited: Oct 25, 2023
- OS
Windows 11 Pro; 21H2, Build 22000.1281
Computer type
Laptop
Manufacturer/Model
Dell 3525
CPU
AMD Ryzen 3 3250 with Radeon Graphics
Memory
8gb
Graphics Card(s)
AMD Graphics
Sound Card
AMD high definition audio device; Realtek audio
Screen Resolution
1980×1020
Local time
9:56 AM
Posts
982
OS
Windows 7
mpam-fe.exe might be a protected file, and you need to confirm deletion.
cmd.exe /c ForFiles /P "C:\Users\dellr\Desktop" /s /m "mpam-fe.exe" /c "cmd /c del /f @FILE"Local time
12:56 PM
Posts
165
OS
Windows 11 Pro; 21H2, Build 22000.1281
mpam-fe.exe might be a protected file, and you need to confirm deletion.
cmd.exe /c ForFiles /P "C:\Users\user\Desktop" /s /m "mpam-fe.exe" /c "cmd /c del /f @FILE"Still keeps running and I moved the /f to several locations. I also tried the following and get the same result:
cmd.exe /c del /f "C:\Users\user\Desktop\mpam-fe.exe"
Last edited: Oct 25, 2023
- OS
Windows 11 Pro; 21H2, Build 22000.1281
Computer type
Laptop
Manufacturer/Model
Dell 3525
CPU
AMD Ryzen 3 3250 with Radeon Graphics
Memory
8gb
Graphics Card(s)
AMD Graphics
Sound Card
AMD high definition audio device; Realtek audio
Screen Resolution
1980×1020
Local time
9:56 AM
Posts
982
OS
Windows 7
I confirmed that, it looks like Task Scheduler thinks the command never exited. May need to debug this, since running the exact line in CMD completes as expected.
Local time
9:56 AM
Posts
982
OS
Windows 7
What I think you’re seeing, is if you don’t right-menu Refresh in the Task Scheduler — it won’t update the view to reflect the task has completed.
Local time
12:56 PM
Posts
165
OS
Windows 11 Pro; 21H2, Build 22000.1281
This is not a real solution, but a workaround. I restart the PC every night so I just placed the command before the restart. Funny part is that you can have many tasks running at the same time without any problem.
- OS
Windows 11 Pro; 21H2, Build 22000.1281
Computer type
Laptop
Manufacturer/Model
Dell 3525
CPU
AMD Ryzen 3 3250 with Radeon Graphics
Memory
8gb
Graphics Card(s)
AMD Graphics
Sound Card
AMD high definition audio device; Realtek audio
Screen Resolution
1980×1020
Local time
9:56 AM
Posts
982
OS
Windows 7
What is copying mpam-fe.exe to your Desktop? Maybe it’s got an open file lock, and preventing your script from exiting. A reboot would kill the process holding the lock.
Local time
12:56 PM
Posts
165
OS
Windows 11 Pro; 21H2, Build 22000.1281
What is copying mpam-fe.exe to your Desktop? Maybe it’s got an open file lock, and preventing your script from exiting. A reboot would kill the process holding the lock.
mpam-fe. is Defender security update and I use Task Scheduler to download (using Firefox) and install the update; didn’t notice it before, but the install process continues to run also so the nightly restart is shutting down that process also.
- OS
Windows 11 Pro; 21H2, Build 22000.1281
Computer type
Laptop
Manufacturer/Model
Dell 3525
CPU
AMD Ryzen 3 3250 with Radeon Graphics
Memory
8gb
Graphics Card(s)
AMD Graphics
Sound Card
AMD high definition audio device; Realtek audio
Screen Resolution
1980×1020
Local time
9:56 AM
Posts
982
OS
Windows 7
That probably explains it. I would just use PowerShell instead, and not depend on a browser.
Replace your task command with "powershell" / "[…]"
powershell "$File='C:\Users\GARLIN\Desktop\mpam-fe.exe'; $ProgressPreference='silentlyContinue'; wget 'https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64' -OutFile $File; Start-Process $File -Wait"Local time
12:56 PM
Posts
165
OS
Windows 11 Pro; 21H2, Build 22000.1281
That probably explains it. I would just use PowerShell instead, and not depend on a browser.
Replace your task command with "powershell" / "[…]"
powershell "$File=’C:\Users\GARLIN\Desktop\mpam-fe.exe’; $ProgressPreference=’silentlyContinue’; wget ‘https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64’ -OutFile $File; Start-Process $File -Wait"
Thanks for the info, I do have a couple of tasks that I use powershell for some of them.
- OS
Windows 11 Pro; 21H2, Build 22000.1281
Computer type
Laptop
Manufacturer/Model
Dell 3525
CPU
AMD Ryzen 3 3250 with Radeon Graphics
Memory
8gb
Graphics Card(s)
AMD Graphics
Sound Card
AMD high definition audio device; Realtek audio
Screen Resolution
1980×1020
Similar threads
- Windows Support Forums

The forfiles command selects one or more files, and executes another command on them. It can select files on criteria including file name and modification time. It can be used in the command line or as part of a batch job.
Availability
The forfiles command was introduced as an optional component of Windows NT. Beginning with Windows Vista, it was included in the standard Windows operating system. It’s also available as part of Windows 7, Windows 8, Windows 10, and Windows 11.
Its executable file is installed at %WINDIR%/System32/forfiles.exe.
Syntax
FORFILES [/P pathname] [/M searchmask] [/S] [/C command]
[**/D** [**+** | **-**]{_MM_**/**_dd_**/**_yyyy_ | _dd_}]| /P pathname | The path to start searching for files. If not specified, the current directory (.) is used. | |
| ———————————————– | ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————– | ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— |
| /M searchmask | Searches files (and directories, if the /S option is specified) whose name matches a search mask searchmask, which may contain wildcards. The default search mask is "*" (an asterisk), which matches all files and directories. | |
| /S | Recurse into subdirectories, as with "DIR /S". | |
| /C command | Execute command on each file where command is a command string, enclosed in double quotes.To include special characters in the command line, use the hexadecimal code for the character in 0xHH format (e.g., 0x09 for the tab character). All commands should be preceded with "cmd /c," although it can be omitted if the command is an external command which requires no arguments. (For a detailed explanation, see this thread on Stack Overflow.) | |
| /D [+ | –]{MM/DD/YYYY | dd}] | Selects files with a last modified date greater than or equal to (+), or less than or equal to (–), the specified date using the "MM/DD/YYYY" format. Can also select files with a last modified date greater than or equal to (+) the current date plus "dd" days, or less than or equal to (–) the current date minus "dd" days. A valid "dd " number of days can be any number in the range of 0–32768. "+" is taken as default sign if none is specified. |
Examples
forfiles /d -30
List the name of any file in the current directory not modified in the last 30 days.
forfiles /d -30 /c "cmd /c echo @path @fdate"
Same as the command above, but displays the complete path with file name, and the date of the file’s last modification.
forfiles /d +"03/15/2018"
List all files in the current directory modified after March 15, 2018.
forfiles /d -"03/15/2018"
List all files in the current directory not modified after March 15, 2018.
forfiles /m "*.txt" /c "cmd /c notepad @file"
For each file in the current directory with the extension .txt (text files), open the file using Notepad.
forfiles /m "*.jpg" /c "cmd /c mspaint @file"
For each file in the current directory with the extension .jpg (JPEG files), open the file using Microsoft Paint.
forfiles /s /p "C:\Users\myuser\Downloads" /m "*.zip" /d -"03/15/2018" /c "cmd /c move @path C:\oldfiles"
forfiles /s /p "C:\Users\myuser\backups" /m "*.zip" /d -90 /c "cmd /c del @path"
forfiles /s /p . /m "*.zip" /c "cmd /c move @file @fname"
For each file in the current directory and all subdirectories, remove the file name extension from the file name, if it exists. If the file name has multiple extensions, only the last one is removed. For instance, file.bak would be renamed to file, and file.doc.bak would be renamed to file.doc.



