Работа с файловой системой
При работе с файловой системой пользователь должен уметь создавать каталоги (папки) и файлы, копировать их и перемещать по собственному желанию, В среде 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|