Получение списка файлов и папок, содержащихся в папке — КиберПедия 

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Получение списка файлов и папок, содержащихся в папке

2022-10-28 24
Получение списка файлов и папок, содержащихся в папке 0.00 из 5.00 0 оценок
Заказать работу

Извлечь все элементы, непосредственно содержащихся в папке, можно при помощи командлета Get-ChildItem. Добавьте необязательный параметр Force для отображения скрытых и системных элементов. Например, эта команда отображает непосредственное содержимое диска C Windows PowerShell (которое совпадает с содержимым физического диска C Windows):

Get-ChildItem -Force C:\

 

Эта команда выводит только элементы, содержащиеся на диске непосредственно, так же как и команда DIR приложения Cmd.exe, а также команда ls оболочки UNIX. Для показа вложенных элементов необходимо также указать параметр -Recurse. (Время выполнения этой операции будет очень велико.) Для вывода всего содержимого диска C введите:

Get-ChildItem -Force C:\ -Recurse

 

Командлет Get-ChildItem позволяет отфильтровать элементы при помощи параметров Path, Filter, Include и Exclude, но обычно осуществляется лишь фильтрация по имени. Сложную фильтрацию на основе других свойств элементов можно выполнить при помощи командлета Where-Object.

Следующая команда находит все исполняемые файлы в папке Program Files, которые были в последний раз изменены после 1 октября 2005 г., и размер которых не менее 1 мегабайта и не более 10 мегабайт:

Get-ChildItem -Path $env:ProgramFiles -Recurse -Include *.exe | Where-Object -FilterScript {($_.LastWriteTime -gt "2005-10-01") -and ($_.Length -ge 1m) -and ($_.Length -le 10m)}

 

Копирование файлов и папок

Копирование выполняется при помощи командлета Copy-Item. Следующая команда создает резервную копию C:\boot.bak для файла C:\boot.ini:

Copy-Item -Path c:\boot.ini -Destination c:\boot.bak

 

Если целевой файл уже существует, то попытка копирования завершается неудачей. Для того чтобы перезаписать существующий целевой файл, используйте параметр Force:

Copy-Item -Path c:\boot.ini -Destination c:\boot.bak -Force

 

Эта команда работает даже если целевой файл помечен как файл только для чтения.

Так же выполняется и копирование папок. Эта команда рекурсивно копирует папку «C:\temp\test1» в новую папку «c:\temp\DeleteMe»:

Copy-Item C:\temp\test1 -Recurse c:\temp\DeleteMe

 

Можно также скопировать избранные элементы. Следующая команда копирует все файлы.txt, содержащиеся в папке «c:\data», в папку «c:\temp\text»:

Copy-Item -Filter *.txt -Path c:\data -Recurse -Destination c:\temp\text

 

Для копирования элементов файловой системы можно использовать и другие средства. В Windows PowerShell по-прежнему работают команды XCOPY и ROBOCOPY, а также такие COM-объекты, как Scripting.FileSystemObject. Например, можно воспользоваться COM-классом Scripting.FileSystem сервера сценариев Windows для создания резервной копии «C:\boot.bak» файла «C:\boot.ini»:

(New-Object -ComObject Scripting.FileSystemObject).CopyFile("c:\boot.ini", "c:\boot.bak")

 

Создание файлов и папок

Создание новых элементов осуществляется одинаковым образом всеми поставщиками Windows PowerShell. Если поставщик Windows PowerShell поддерживает более одного типа элементов (например, поставщик Windows PowerShell FileSystem различает каталоги и файлы), необходимо указать тип элемента.

Эта команда создает новую папку «C:\temp\New Folder»:

New-Item -Path 'C:\temp\New Folder' -ItemType "directory"

 

Эта команда создает новый пустой файл «C:\temp\New Folder\file.txt»:

New-Item -Path 'C:\temp\New Folder\file.txt' –ItemType "file"

 

Удаление всех файлов и папок, содержащихся в папке

Удалить вложенные элементы можно при помощи командлета Remove-Item, однако он потребует подтверждения удаления, если элемент сам что-нибудь содержит. Например, при попытке удаления папки «C:\temp\DeleteMe», которая содержит другие элементы, Windows PowerShell предварительно предложит подтвердить удаление этой папки:

Remove-Item C:\temp\DeleteMe   Подтверждение Элемент в C:\temp\DeleteMe имеет дочерние объекты, и параметр -recurse не указан. При продолжении все дочерние объекты будут удалены вместе с элементом. Вы действительно хотите продолжить? [А] Да [Х] Да для всех [Н] Нет [В] Нет для всех [Т] Приостановить [?] Справка (значением по умолчанию является "А"):

 

Если подтверждение для каждого вложенного элемента нежелательно, укажите параметр Recurse:

Remove-Item C:\temp\DeleteMe -Recurse

 


Поделиться с друзьями:

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.