Копирование, перемещение и удаление файлов в PowerShell
Зачем использовать PowerShell для операций с файлами
PowerShell — это консольная оболочка и язык сценариев от Microsoft. Коротко: cmdlet — это команда в форме «Глагол-Объект» (например, Copy-Item). PowerShell удобен, если нужно автоматизировать задачи, выполнять операции над множеством файлов или управлять удалёнными компьютерами.
Важно: для большинства разовых действий удобнее File Explorer. PowerShell выгоден при пакетной обработке, скриптах и удалённом администрировании.

Быстрые рекомендации перед началом
- Запускайте PowerShell от имени администратора, если изменяете системные файлы. В меню «Пуск» введите “powershell”, щёлкните правой кнопкой и выберите «Запуск от имени администратора».
- Перед любыми массовыми удалениями используйте ключ -WhatIf, чтобы увидеть, что сделает команда, но не выполнять изменения.
- Для проверки содержимого папки используйте Get-ChildItem (alias dir или ls).
Запуск и навигация в каталоге
- Откройте меню «Пуск», введите powershell и нажмите Enter.
- Перейдите в нужную папку командой Set-Location (или cd):
Set-Location -Path "C:\Users\[Username]\Downloads"
# или
cd "C:\Users\[Username]\Downloads"Проверьте содержимое папки:
Get-ChildItem
# или
dirКак копировать файлы
Используйте cmdlet Copy-Item. Пример для одного файла:
Copy-Item -Path "text1.txt" -Destination "C:\DestinationFolder"Если путь к файлу не в текущей директории, указывайте полный путь.
Проверка: выполните Get-ChildItem в папке назначения, чтобы убедиться, что файл скопирован.
Копирование папок и содержимого рекурсивно
Чтобы скопировать папку вместе со всеми вложенными файлами и подпапками, добавьте параметр -Recurse:
Copy-Item -Path ".\exampleFolder" -Destination "C:\DestinationFolder" -RecurseЕсли нужно перезаписать файлы без запроса, используйте -Force. Для симуляции операции сначала добавьте -WhatIf.
Как перемещать файлы и папки
Для перемещения используйте Move-Item. Пример для одного файла:
Move-Item -Path "filename.txt" -Destination "C:\DestinationFolder"Для нескольких файлов перечислите пути через запятую:
Move-Item -Path "file1.txt","file2.txt" -Destination "C:\DestinationFolder"Для перемещения папки:
Move-Item -Path "FolderName" -Destination "C:\DestinationFolder"Проверка: если файл исчез из исходной папки, он перемещён.
Совет: используйте -WhatIf перед массовыми перемещениями. Move-Item не имеет -Recurse, потому что перемещение папки обычно перемещает и её содержимое вместе с ней.
Как удалять файлы и папки
Удаление файлов:
Remove-Item -Path "filename.txt"
# несколько файлов
Remove-Item -Path "file1.txt","file2.txt","file3.txt"Удаление папки с содержимым:
Remove-Item -Path "Folder" -RecurseЧтобы принудительно удалить без подтверждения используйте -Force. Всегда сначала попробуйте с -WhatIf:
Remove-Item -Path "Folder" -Recurse -WhatIfПомните: удалённые таким образом файлы минуют корзину. Будьте осторожны.
Как переименовать файл или папку
Переименование файла:
Rename-Item -Path "C:\path\to\oldfilename.txt" -NewName "newfilename.txt"Переименование папки:
Rename-Item -Path "C:\Downloads\oldfoldername" -NewName "newfoldername"Если новое имя уже существует, команда завершится с ошибкой — убедитесь, что конфликтов нет.
Частые задачи и примеры
- Копирование по маске (все .txt):
Copy-Item -Path "*.txt" -Destination "C:\DestinationFolder" -Recurse- Удаление всех файлов с конкретным расширением:
Remove-Item -Path "C:\Temp\*.log" -Force- Переименование с использованием цикла (batch):
Get-ChildItem -Path "C:\Photos" -Filter "*.jpg" | ForEach-Object {
$new = "IMG_" + $_.Name
Rename-Item -Path $_.FullName -NewName $new
}Проверка и отладка: полезные параметры
- -WhatIf — симулирует действие без внесения изменений.
- -Confirm — заставит запросить подтверждение перед действием.
- -Force — принудительное действие (перезапись, удаление скрытых/системных файлов).
- Get-ChildItem (dir) — чтобы увидеть файлы до и после операции.
Когда PowerShell не лучшая опция
- Для копирования больших наборов данных по сети с сохранением прав доступа лучше использовать Robocopy.
- Если нужна визуальная локализация и перетаскивание — File Explorer удобнее.
- Для сложного резервного копирования с проверкой хешей используйте специализированные утилиты.
Альтернативные подходы
- File Explorer (GUI) — простые операции.
- Robocopy — надёжно при больших объёмах и сохранении ACL/атрибутов.
- Xcopy — устаревшая, но иногда полезна для старых сценариев.
Модель мышления (heuristic)
- Сначала проверьте (Get-ChildItem).
- Протестируйте с -WhatIf.
- Выполните операцию с -Confirm/-Force по необходимости.
- Повторно проверьте результаты.
Шпаргалка команд (cheat sheet)
| Операция | Команда | Кратко |
|---|---|---|
| Просмотр каталога | Get-ChildItem / dir | Показать файлы и папки |
| Копирование файла | Copy-Item -Path | Копирует файл/папку |
| Копирование папки рекурсивно | Copy-Item -Path | Копирует вложения |
| Перемещение | Move-Item -Path | Перемещает файлы/папки |
| Удаление файла | Remove-Item -Path | Удаляет файл |
| Удаление папки | Remove-Item -Path | Удаляет папку и содержимое |
| Переименование | Rename-Item -Path | Переименовывает |
| Симуляция | Показывает, что произойдёт |
Рольовые чек-листы
- Администратор:
- Запустить PowerShell от имени администратора.
- Использовать -WhatIf для массовых изменений.
- Логировать действия и проверять права доступа.
- Power user:
- Протестировать команды в тестовой папке.
- Использовать скрипты для повторяемых задач.
- Новичок:
- Практиковаться на копиях файлов, а не на важных данных.
- Начинать с Get-ChildItem и -WhatIf.
Частые ошибки и как их исправить
- Проблема: “Access denied” — запустите PowerShell как администратор или проверьте права NTFS.
- Проблема: файлы не копируются корректно — проверьте, не используются ли файлы другой программой.
- Проблема: неправильные кавычки в пути — используйте прямые двойные кавычки “” и экранируйте обратные слэши.
Безопасность и приватность
- Удалённые команды Remove-Item обычно не отправляют файлы в корзину. Убедитесь, что у вас есть резервные копии.
- Для работы с личными данными соблюдайте внутренние правила хранения и удаления, а при необходимости — локальные требования по защите данных.
Короткий глоссарий
- cmdlet — командлет PowerShell, небольшая команда.
- Параметр -Recurse — рекурсивно применять команду к подпапкам.
- Параметр -Force — принудительное выполнение (перезапись/удаление).
- -WhatIf — симуляция действия без внесения изменений.
Когда использовать Robocopy вместо Copy-Item
Robocopy лучше при копировании больших объёмов, при необходимости сохранить права доступа (ACL), таймштампы, атрибуты и при повторных попытках при сетевых ошибках.
Краткое резюме
PowerShell даёт более гибкий и автоматизируемый подход к операциям с файлами по сравнению с GUI. Начинайте с проверки состояния, используйте -WhatIf и команды Get-ChildItem, а для больших/критичных миграций рассматривайте Robocopy.
Важно: всегда проверяйте команды на тестовых данных перед выполнением на боевых файлах.
Сводка команд: Copy-Item, Move-Item, Remove-Item, Rename-Item, Get-ChildItem — изучите их параметры (-Recurse, -Force, -WhatIf, -Confirm) и применяйте безопасные практики.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента