Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Работа с файловой системой




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

Изучение любой файловой системы обычно начинают с команд, обеспечивающих получение списка каталогов и файлов. В командной строке интерпретатора cmd.exe такой командой служит tree. В PowerShell для этих целей командлет Get-ChildItem и его псевдоним dir, более привычный для пользователей персональных компьютеров. Отличительной особенностью новых средств является их расширенная функциональность.

Рассмотрим несколько типовых примеров их применения. Использование параметра -Recurse (рекурсия) позволяет отразить содержание любого диска с его каталогами и подкаталогами. Команда

>dir ‘Documents and Settings’ –Recurse

позволяет просмотреть полное содержимое каталога Documents and Settings.

По умолчанию командлет не отображает скрытые файлы. Если требуется включить в рассмотрение и их, то в команду следует вставить параметр –Force.

В случаях, когда необходимо ограничиться только списком каталогов и подкаталогов, то можно задать конвейер, в котором второй командлет Whre-Object со свойством PSIsContainer отфильтрует файлы.

….

Рассмотрим пример из [1], иллюстрирующий использование большего числа полей в формате команлета. Пусть, например, в каталоге c:\windows требуется найти все exe-файлы, имена которых начинаются буквой n, а оканчиваются буквой d (шаблон n*d.exe). Решением этой задачи может служить команда

dir -Recurse -Filter n*d.exe –Path c:\windows

Учитывая, что синтаксис оболочки PowerShell не критичен в отношении прописных и строчных букв, а также допускает сокращение слов до нескольких символов, обеспечивающих все-таки однозначное понимание терминов, можно запись сократить

dir -r -fi n*d.exe c:\windows

В этом выражении псевдоним dir заменяет имя команлета Get-ChildItem, переключатель -r является сокращением –Recurse. Этот переключатель распространяет действие команды не только на указанный каталог, но и на все его подкаталоги. Параметрфильтр -fi (-Filter) с аргументом n*d.exe задает маску файлов для поиска. Еще один параметр –Path с аргументом c:\windows определяет путь к исследуемому каталогу. Имя параметра с ключевым словом –Path можно не записывать, если по контексту выражение не имеет других значений.

Результатом выполнения будет информация о двух файлах: файле notepad.exe (блокнот) и файле ntsd.exe (встроенный 32-разрядный отладчик).

Другой важной процедурой файловой системы является создание новых каталогов и файлов. Эти функции выполняет командлет New-Item. В качестве параметров требуется указать место размещения создаваемого объекта. Для этого в параметре –Path прописывается полный путь к каталогу, в котором создается объект, а в параметре –Type указывается тип объекта “directory” или “file”. Создадим в корневом каталоге диска C:\ новый каталог с именем test_folder.

Результат выполнения команды появляется на экране сразу после ввода команды. В некоторых случаях бывает желательно имя файла определить как дату в формате ГГММДД (%y%m%d). Тогда нужно использовать следующую команду.

Если требуется в имени файла прописать дату создания в формате ГГГГММДД, то значение параметра –uformat надо записать в виде ’%Y%m%d’.

Войдем в созданный каталог test_folder, выполнив команду cd test_folder. Объявим и создадим текстовый файл test_file.txt, в который в качестве заголовка внесем название Test (значение “Test” для параметра -Value). Так как в параметре –Path путь к файлу не указан (можно опустить и название параметра), то по умолчанию файл создается в текущем каталоге. После того, как файл создан, прочитаем содержимое файла, подав команду type test_file.txt. Команда type является псевдонимом командлета Get-Content.

Копирование файлов в PowerShell практически ничем не отличается от копирования в других командных оболочках. Копирование осуществляется с помощью командлета Rename-Item, имеющего псевдоним ren. Создадим в папке test_folder файл 1.tmp, сделаем ему копию (файл 7.tmp). Для того, чтобы сразу видеть результат, укажем параметр –PassThru.

Для контроля проведенных работ можно использовать команды-псевдонимы dir и type.

Результаты действий отдельных команд можно записывать в файлы, используя перенаправление вывода данных. Знак > удаляет старое содержимое файла, заменяя его новым, знаки >> дописывают новые данные в конец указанного файла.

Удаление каталогов (псевдоним rd) и файлов (псевдоним del) выполняется с помощью командлета Remove-Item. После имени командлета или псевдонима, его заменяющего, прописывается путь к удаляемому объекту и параметры –Include, значение которого задает шаблон удаляемых файлов, например, *.txt, и –Exclude, указывающего на какие файлы команда не должна действовать, например, *.ps1.

Например, команда удаления файлов созданной папки test_folder со всеми вложенными подкаталогами может быть записана PS C:\>del c:\test_folder\* -Recurse.

Задание 3.

1. Просмотреть, какие диски (хранилища) доступны пользователю компьютера.

2. Просмотреть содержимое дисков, провайдеры которых не затрагивают файловую систему.

3. Создать один-два подкаталога в текущем каталоге пользователя.

4. Создать новый диск, обеспечивающий обращение к одному из созданных подкаталогов.

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

6. Уничтожить созданные объекты.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...