Powershell удалить все файлы в папке
Командлет Remove-Item удаляет один или несколько элементов. Так как она поддерживается многими поставщиками, она может удалять различные типы элементов, включая файлы, папки, разделы реестра, переменные, псевдонимы и функции.
Примеры
Пример 1. Удаление файлов с любым расширением имени файла
В этом примере удаляются все файлы с именами, включающими точку ( . ) из C:\Test папки. Так как команда задает точку, команда не удаляет папки или файлы без расширения имени файла.
Пример 2. Удаление некоторых файлов документов в папке
В этом примере удаляются из текущей папки все файлы, имеющие .doc расширение имени файла и имя, которое не содержит *1* .
Он использует подстановочный знак ( * ) для указания содержимого текущей папки. Он использует параметры Include и Exclude для указания удаляемого файла.
Пример 3. Удаление скрытых файлов, доступных только для чтения
Эта команда удаляет файл, который является скрытым и доступным только для чтения.
Для указания файла используется параметр Path . Для удаления используется параметр Force . Без принудительного удаления не удается удалить файлы только для чтения или скрытые файлы.
Пример 4. Рекурсивное удаление файлов во вложенных папках
Эта команда удаляет все CSV-файлы в текущей папке и все вложенные папки рекурсивно.
Так как параметр Recurse имеет известную проблему, команда в Remove-Item этом примере используется Get-ChildItem для получения нужных файлов, а затем использует оператор конвейера для их передачи Remove-Item .
В команде Get-ChildItem Path имеет значение ( * ), представляющее содержимое текущей папки. Он использует include для указания типа CSV-файла и использует recurse для рекурсивного извлечения. При попытке указать путь к файлу, например -Path *.csv , командлет интерпретирует тему поиска как файл без дочерних элементов, а рекурс завершается ошибкой.
Это поведение было исправлено в Windows версиях 1909 и более поздних версий.
Пример 5. Рекурсивное удаление подразделов
Эта команда удаляет раздел реестра OldApp и все его подразделы и значения. Он используется для Remove-Item удаления ключа. Указан путь, но имя необязательного параметра (Path) опущено.
Параметр Recurse удаляет все содержимое ключа OldApp рекурсивно. Если ключ содержит подразделы и не указан параметр Recurse , вам будет предложено подтвердить удаление содержимого ключа.
Пример 6. Удаление файлов с помощью специальных символов
В следующем примере показано, как удалить файлы, содержащие специальные символы, такие как скобки или скобки.
Пример 7. Удаление альтернативного потока данных
В этом примере показано, как использовать динамический параметр Stream командлета Remove-Item для удаления альтернативного потока данных. Параметр потока представлен в Windows PowerShell 3.0.
Параметр Get-Item Stream получает Zone.Identifier поток Copy-Script.ps1 файла. Remove-Item использует параметр Stream для удаления Zone.Identifier потока файла. Наконец, командлет показывает, Get-Item что Zone.Identifier поток был удален.
Параметры
Запрос подтверждения перед выполнением командлета. Дополнительные сведения см. в следующих статьях:
Этот параметр не поддерживается поставщиками, установленными с помощью PowerShell. Чтобы олицетворять другого пользователя или повысить свои учетные данные при выполнении этого командлета, используйте Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Указывает, как массив строк, элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt . Можно использовать подстановочные знаки. Параметр Exclude действует только в том случае, если команда содержит содержимое элемента, например C:\Windows\* , где подстановочный знак указывает содержимое C:\Windows каталога.
При использовании recurse с exclude, exclude only filters results of the current directory. Если в вложенных папках есть файлы, соответствующие шаблону Exclude , эти файлы удаляются вместе с родительским каталогом.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Указывает фильтр для уточнения параметра Path . Поставщик FileSystem — единственный установленный поставщик PowerShell, который поддерживает использование фильтров. Синтаксис языка фильтрации Файловой системы можно найти в about_Wildcards. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их, когда командлет получает объекты, а не фильтрует объекты PowerShell после их извлечения.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Заставляет командлет удалять элементы, которые не могут быть изменены, например скрытые или доступные только для чтения файлы или псевдонимы только для чтения или переменные. С помощью этого командлета нельзя удалять постоянные псевдонимы или переменные. Применение этого параметра зависит от конкретного поставщика. Дополнительные сведения см. в разделе about_Providers. Даже при использовании параметра Force командлет не может переопределить ограничения безопасности.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Указывает, как массив строк, элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например "*.txt" . Можно использовать подстановочные знаки. Параметр Include действует только в том случае, если команда включает содержимое элемента, например C:\Windows\* , где подстановочный знак указывает содержимое C:\Windows каталога.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Указывает путь к одному или нескольким расположениям. Значение LiteralPath используется точно так же, как оно введено. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки говорят PowerShell, что никакие символы не интерпретируются как escape-последовательности.
Type: | String [ ] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Указывает путь к удаляемым элементам. Можно использовать подстановочные знаки.
Type: | String [ ] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Указывает, что этот командлет удаляет элементы в указанных расположениях и во всех дочерних элементах расположений.
Параметр Recurse может не удалять все вложенные папки или все дочерние элементы. Это известная проблема
Это поведение было исправлено в Windows версиях 1909 и более поздних версиях.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Параметр Stream — это динамический параметр, к которому Remove-Item добавляет поставщик FileSystem. Этот параметр работает только на дисках с файловой системой.
Можно использовать для Remove-Item удаления альтернативного потока данных, например Zone.Identifier . Однако не рекомендуется отменять проверки безопасности, которые блокируют файлы, загруженные из Интернета. Если вы убедитесь, что скачанный файл является безопасным, используйте Unblock-File командлет.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Включает команду в активную транзакцию. Этот параметр доступен только при выполнении транзакции. Дополнительные сведения см. в разделе about_Transactions
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
В этот командлет можно передать строку, содержащую путь, но не литеральный путь.
Выходные данные
Нет
Этот командлет не возвращает никакие выходные данные.
Примечания
Командлет Remove-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлет Get-PsProvider . Дополнительные сведения см. в разделе about_Providers.
При попытке удалить папку, содержащую элементы без использования параметра Recurse , командлет запрашивает подтверждение. Использование -Confirm:$false не подавляет запрос. Это сделано намеренно.
Просмотр содержимого дисков Windows PowerShell и управление хранящимися на них элементами аналогично управлению файлами и папками на физических дисках Windows. В этой статье описывается выполнение конкретных задач по управлению файлами и папками с помощью PowerShell.
Получение списка файлов и папок, содержащихся в папке
Извлечь все элементы непосредственно из папки можно с помощью командлета Get-ChildItem . Для отображения скрытых и системных элементов добавьте необязательный параметр Force. Например, эта команда отображает непосредственное содержимое диска C Windows PowerShell (которое совпадает с содержимым физического диска C Windows):
Эта команда выводит только элементы, содержащиеся на диске непосредственно, так же как и команда DIR оболочки Cmd.exe или команда ls оболочки UNIX. Для показа вложенных элементов необходимо также указать параметр -Recurse . (Время выполнения этой операции будет очень велико.) Для вывода всего содержимого диска C введите:
Командлет Get-ChildItem позволяет отфильтровать элементы с помощью параметров Path, Filter, Include и Exclude, но обычно осуществляется лишь фильтрация по имени. Сложную фильтрацию на основе других свойств элементов можно выполнить с помощью Where-Object .
Следующая команда находит все исполняемые файлы в папке Program Files, которые были в последний раз изменены после 1 октября 2005 г. и размер которых не менее одного мегабайта и не более десяти мегабайт:
Копирование файлов и папок
Копирование выполняется с помощью командлета Copy-Item . Следующая команда создает резервную копию C:\boot.ini в C:\boot.bak:
Если целевой файл уже существует, то попытка копирования завершается неудачей. Чтобы перезаписать имеющийся целевой файл, используйте параметр Force.
Эта команда работает, даже если целевой объект доступен только для чтения.
Так же выполняется и копирование папок. Эта команда копирует папку C:\temp\test1 в новую папку C:\temp\DeleteMe рекурсивно.
Можно также скопировать избранные элементы. Следующая команда копирует все файлы TXT, содержащиеся в папке C:\data , в папку C:\temp\text :
Для копирования элементов файловой системы можно использовать и другие средства. В Windows PowerShell по-прежнему работают команды XCOPY, ROBOCOPY и такие COM-объекты, как Scripting.FileSystemObject. Например, можно воспользоваться COM-классом Scripting.FileSystem сервера сценариев Windows для создания резервной копии файла C:\boot.ini в файле C:\boot.bak :
Создание файлов и папок
Создание новых элементов осуществляется одинаковым образом всеми поставщиками Windows PowerShell. Если поставщик Windows PowerShell поддерживает более одного типа элементов (например, поставщик Windows PowerShell FileSystem различает каталоги и файлы), необходимо указать тип элемента.
Эта команда создает папку C:\temp\New Folder :
Эта команда создает пустой файл C:\temp\New Folder\file.txt .
При использовании параметра Force с командой New-Item для создания папки, которая уже существует, она не перезапишет и не заменит папку. Будет просто возвращен имеющийся объект папки. Однако, если использовать New-Item -Force в уже имеющимся файле, файл будет полностью перезаписан.
Удаление всех файлов и папок, содержащихся в папке
Удалить вложенные элементы можно с помощью командлета Remove-Item , однако он потребует подтверждения удаления, если элемент сам что-нибудь содержит. Например, при попытке удаления папки C:\temp\DeleteMe , которая содержит другие элементы, Windows PowerShell предварительно предложит подтвердить удаление этой папки:
Если подтверждение для каждого вложенного элемента нежелательно, задайте параметр Recurse:
Подключение локальной папки как диска
Отобразить локальную папку можно с помощью команды New-PSDrive . Следующая команда создает локальный диск P: , корневым каталогом которого является локальный каталог Program Files, отображающийся только в сеансе PowerShell:
Как и при использовании сетевых дисков, диски, отображенные в Windows PowerShell, немедленно становятся доступными оболочке Windows PowerShell. Чтобы создать подключенный диск, отображающийся в проводнике, нужен параметр -Persist . Но с этим параметром можно использовать только удаленные пути.
Чтение текстового файла в массив
Одним из наиболее общих форматов хранения текстовых данных является файл, отдельные строки которого рассматриваются как отдельные элементы. Командлет Get-Content используется для чтения всего файла за один шаг, как показано далее:
Командлет Get-Content сразу рассматривает данные, считанные из файла, как массив с одним элементом на строку содержимого файла. Убедиться в этом можно, проверив свойство Length полученного содержимого:
Эта команда наиболее полезна для непосредственного ввода в Windows PowerShell информационных списков. Например, можно хранить в файле C:\temp\domainMembers.txt список имен компьютеров или IP-адресов по одному имени на каждую строку файла. Вы можете использовать командлет Get-Content , чтобы извлечь содержимое файла и поместить его в переменную $Computers :
Теперь переменная $Computers представляет собой массив, содержащий в каждом элементе имя компьютера.
Navigating through Windows PowerShell drives and manipulating the items on them is similar to manipulating files and folders on Windows physical disk drives. This article discusses how to deal with specific file and folder manipulation tasks using PowerShell.
Listing All the Files and Folders Within a Folder
You can get all items directly within a folder by using Get-ChildItem . Add the optional Force parameter to display hidden or system items. For example, this command displays the direct contents of Windows PowerShell Drive C (which is the same as the Windows physical drive C):
The command lists only the directly contained items, much like using Cmd.exe 's DIR command or ls in a UNIX shell. In order to show contained items, you need to specify the -Recurse parameter as well. (This can take an extremely long time to complete.) To list everything on the C drive:
Get-ChildItem can filter items with its Path, Filter, Include, and Exclude parameters, but those are typically based only on name. You can perform complex filtering based on other properties of items by using Where-Object .
The following command finds all executables within the Program Files folder that were last modified after October 1, 2005 and which are neither smaller than 1 megabyte nor larger than 10 megabytes:
Copying Files and Folders
Copying is done with Copy-Item . The following command backs up C:\boot.ini to C:\boot.bak:
If the destination file already exists, the copy attempt fails. To overwrite a pre-existing destination, use the Force parameter:
This command works even when the destination is read-only.
Folder copying works the same way. This command copies the folder C:\temp\test1 to the new folder C:\temp\DeleteMe recursively:
You can also copy a selection of items. The following command copies all .txt files contained anywhere in C:\data to C:\temp\text :
You can still use other tools to perform file system copies. XCOPY, ROBOCOPY, and COM objects, such as the Scripting.FileSystemObject, all work in Windows PowerShell. For example, you can use the Windows Script Host Scripting.FileSystem COM class to back up C:\boot.ini to C:\boot.bak :
Creating Files and Folders
Creating new items works the same on all Windows PowerShell providers. If a Windows PowerShell provider has more than one type of item—for example, the FileSystem Windows PowerShell provider distinguishes between directories and files—you need to specify the item type.
This command creates a new folder C:\temp\New Folder :
This command creates a new empty file C:\temp\New Folder\file.txt
When using the Force switch with the New-Item command to create a folder, and the folder already exists, it won't overwrite or replace the folder. It will simply return the existing folder object. However, if you use New-Item -Force on a file that already exists, the file will be completely overwritten.
Removing All Files and Folders Within a Folder
You can remove contained items using Remove-Item , but you will be prompted to confirm the removal if the item contains anything else. For example, if you attempt to delete the folder C:\temp\DeleteMe that contains other items, Windows PowerShell prompts you for confirmation before deleting the folder:
If you do not want to be prompted for each contained item, specify the Recurse parameter:
Mapping a Local Folder as a drive
You can also map a local folder, using the New-PSDrive command. The following command creates a local drive P: rooted in the local Program Files directory, visible only from the PowerShell session:
Just as with network drives, drives mapped within Windows PowerShell are immediately visible to the Windows PowerShell shell. In order to create a mapped drive visible from File Explorer, the parameter -Persist is needed. However, only remote paths can be used with Persist.
Reading a Text File into an Array
Get-Content already treats the data read from the file as an array, with one element per line of file content. You can confirm this by checking the Length of the returned content:
This command is most useful for getting lists of information into Windows PowerShell directly. For example, you might store a list of computer names or IP addresses in a file C:\temp\domainMembers.txt , with one name on each line of the file. You can use Get-Content to retrieve the file contents and put them in the variable $Computers :
Поставщик файловой системы PowerShell позволяет получать, добавлять, изменять, очищать и удалять файлы и каталоги в PowerShell.
Диски файловой системы — это иерархическое пространство имен, содержащее каталоги и файлы на компьютере. Диск файловой системы может быть логическим или физическим диском, каталогом или сопоставленным сетевым ресурсом.
Поставщик FileSystem поддерживает следующие командлеты, описанные в этой статье.
Типы, предоставляемые этим поставщиком
Файлы являются экземплярами класса System. IO. FileInfo . Каталоги являются экземплярами класса System. IO. DirectoryInfo .
Навигация по дискам файловой системы
Поставщик FileSystem предоставляет свои хранилища данных путем сопоставления логических дисков на компьютере с дисками PowerShell. Для работы с диском файловой системы можно изменить расположение на диск, используя имя диска, за которым следует двоеточие ( : ).
Вы также можете работать с поставщиком FileSystem с любого другого диска PowerShell. Чтобы сослаться на файл или каталог из другого расположения, используйте имя диска ( C: , D: . ) в пути.
PowerShell использует Псевдонимы для предоставления привычного способа работы с путями поставщика. Команды, такие как dir и ls , теперь являются псевдонимами для Get-ChildItem, cd являются псевдонимом для Set-Location. и pwd — это псевдоним для Get-Location.
Получение файлов и каталогов
Get-ChildItem Командлет возвращает все файлы и каталоги в текущем расположении. Можно указать другой путь для поиска и использовать встроенные параметры для фильтрации и управления глубиной рекурсии.
Дополнительные сведения об использовании командлетов см. в статье Get-ChildItem.
Копирование файлов и каталогов
Copy-Item Командлет копирует файлы и каталоги в указанное расположение. Параметры можно использовать для фильтрации и рекурсии, аналогично Get-ChildItem .
следующая команда копирует все файлы и каталоги по пути "C:\temp " в папку" C:\ Windows \temp ".
Copy-Item перезаписывает файлы в целевом каталоге без запроса подтверждения.
Эта команда копирует a.txt файл из C:\a каталога в C:\a\bb каталог.
Копирует все каталоги и файлы из C:\a каталога C:\c в каталог. Если какие-либо копируемые каталоги уже существуют в целевом каталоге, то команда завершится с ошибкой, если не указан параметр Force.
Дополнительные сведения см. в разделе Copy-Item.
Перемещение файлов и каталогов
Эта команда перемещает c.txt файл в C:\a каталог C:\a\aa в каталог:
Команда не перезапишет автоматически существующий файл с тем же именем. Для принудительной перезаписи существующего файла необходимо задать параметр Force.
Нельзя перемещать каталог, если он совпадает с текущим местоположением. При использовании Move-Item для перемещения каталога в текущем расположении отображается эта ошибка.
Управление содержимым файлов
Получение содержимого файла
Эта команда возвращает содержимое файла "Test.txt" и отображает их в консоли.
Содержимое файла можно передать другому командлету по конвейеру. Например, следующая команда считывает содержимое Test.txt файла и затем передает его в качестве входных данных командлету ConvertTo-HTML :
Можно также получить содержимое файла, указав в качестве пути к нему знак доллара ( $ ). Путь должен быть заключен в фигурные скобки из-за ограничений именования переменных. Дополнительные сведения см. в разделе about_Variables.
Добавление содержимого в файл
Эта команда добавляет строку "тестовое содержимое" в Test.txt файл:
Существующее содержимое в Test.txt файле не удаляется.
Замена содержимого файла
Эта команда заменяет содержимое Test.txt файла строкой "Test Content":
Он перезаписывает содержимое Test.txt . Можно использовать параметр value командлета New-Item , чтобы добавить содержимое в файл при его создании.
Перебрать содержимое файла
По умолчанию Get-Content командлет использует символ конца строки в качестве разделителя, поэтому он получает файл в виде коллекции строк, каждая из которых имеет одну строку в файле.
С помощью -Delimiter параметра можно указать альтернативный разделитель. Если в качестве его значения будут заданы символы, обозначающие конец раздела или начало следующего раздела, файл можно будет разделить на логические части.
Первая команда получает Employees.txt файл и разделяет его на разделы, каждый из которых заканчивается словами "конец записи о сотруднике", и сохраняет его в $e переменной.
Вторая команда использует нотацию массива для получения первого элемента в коллекции в $e . Он использует индекс 0, так как массивы PowerShell отсчитываются от нуля.
Дополнительные сведения о Get-Content командлете см. в разделе справки по разделу Get-Content.
Дополнительные сведения о массивах см. в разделе about_Arrays.
Управление дескрипторами безопасности
Просмотр списка ACL для файла
Чтобы получить дополнительные сведения об этом объекте, передайте команду в командлет Get-Member по конвейеру. Или см. раздел класс FileSecurity .
Изменение ACL для файла
Создание и задание списка управления доступом для файла
Создание файлов и каталогов
Создание каталога
Эта команда создает logfiles каталог на C диске:
PowerShell также включает mkdir функцию (псевдоним md ), которая использует командлет New-Item для создания нового каталога.
Создание файла
Эта команда создает log2.txt файл в C:\logfiles каталоге, а затем добавляет в файл строку "Журнал теста":
Создание файла с содержимым
Создает файл с именем log2.txt в C:\logfiles каталоге и добавляет в файл строку "тестовый журнал".
Переименование файлов и каталогов
Переименуйте файл
Эта команда переименовывает a.txt файл в C:\a каталоге b.txt следующим образом:
Переименование каталога
Эта команда переименовывает C:\a\cc каталог в C:\a\dd :
Удаление файлов и каталогов
Удаление файла
Эта команда удаляет Test.txt файл в текущем каталоге:
Удаление файлов с помощью подстановочных знаков
Эта команда удаляет все файлы в текущем каталоге с .xml расширением имени файла:
Запуск программы путем вызова связанного файла
Вызов файла
Первая команда использует командлет Get-Service для получения сведений о локальных службах.
Он передает сведения в командлет Export-CSV , а затем сохраняет эти сведения в Services.csv файле.
Вторая команда использует Invoke-Item для открытия services.csv файла в программе, связанной с .csv расширением:
Получение файлов и папок с указанными атрибутами
Получение системных файлов
Эта команда возвращает системные файлы в текущем каталоге и его подкаталогах.
Он использует -File параметр для получения только файлов (не каталогов) и -System параметр для получения только элементов с атрибутом System.
Он использует -Recurse параметр для получения элементов в текущем каталоге и всех подкаталогах.
Получение скрытых файлов
Эта команда возвращает все файлы, включая скрытые файлы, в текущем каталоге.
В нем используется параметр Attributes с двумя значениями, !Directory+Hidden , который получает скрытые файлы, и !Directory , который получает все остальные файлы.
dir -att !d,!d+h эквивалентна этой команде.
Получение сжатых и зашифрованных файлов
Эта команда возвращает файлы в текущем каталоге, которые сжаты или зашифрованы.
Он использует -Attributes параметр с двумя значениями Compressed и Encrypted . Значения разделяются запятой , , которая представляет оператор "или".
Динамические параметры
Динамические параметры — это параметры командлета, которые добавляются поставщиком PowerShell и доступны только при использовании командлета на диске с поддержкой поставщика.
EncodingУказывает кодировку файла. Значение по умолчанию — ASCII.
- ASCII: использует кодировку для набора символов ASCII (7-разрядных).
- BigEndianUnicode: кодирует в формате UTF-16 с обратным порядком байтов.
- Строка: использует тип кодировки для строки.
- Юникод: кодирует в формате UTF-16 с прямым порядком байтов.
- UTF7: кодирует в формате UTF-7.
- UTF8: кодирует в формате UTF-8.
- UTF8BOM: кодирует в формате UTF-8 с меткой порядка БАЙТОВ (BOM)
- UF8NOBOM: кодирует в формате UTF-8 без метки порядка БАЙТОВ (BOM)
- UTF32: кодирует в формате UTF-32.
- По умолчанию: кодируется на странице установленного по умолчанию кода.
- OEM: использует кодировку по умолчанию для программ MS-DOS и консолей.
- Неизвестно: неизвестный или недопустимый тип кодировки. Данные можно обрабатывать как двоичные.
Поддерживаемые командлеты
DelimiterУказывает разделитель, используемый командлетом Get-Content для разделения файла на объекты при чтении.
Значение по умолчанию — \n , символ конца строки.
При чтении текстового файла командлет Get-Content Возвращает коллекцию строковых объектов, каждая из которых заканчивается символом-разделителем.
При вводе разделителя, который не существует в файле, командлет Get-Content возвращает весь файл как один объект без разделителей.
Этот параметр можно использовать для разбиения большого файла на меньшие файлы, указав разделитель файла, например "Конец примера", в качестве разделителя. Разделитель сохраняется (не удаляется) и становится последним элементом в каждом разделе файла.
В настоящее время, если значение -Delimiter параметра является пустой строкой, командлет Get-Content не возвращает ничего. Это известная проблема. Чтобы принудительно применить командлет Get-Content для возврата всего файла в виде единой неразделенной строки, введите значение, которое не существует в файле.
Поддерживаемые командлеты
Ожидает содержимое для добавления в файл. Если содержимое добавлено, возвращает добавленное содержимое. Если содержимое не изменилось, возвращает весь файл.
Во время ожидания командлет Get-Content проверяет файл раз в секунду, пока не будет прерван, например, нажатием сочетания клавиш CTRL+C.
Поддерживаемые командлеты
AttributesИзвлекает файлы и папки с указанными атрибутами. Этот параметр поддерживает все атрибуты и позволяет указывать сложные сочетания атрибутов.
-Attributes параметр был введен в Windows PowerShell 3,0.
-Attributes Параметр поддерживает следующие атрибуты:
Описание этих атрибутов см. в описании перечисления FileAttributes .
Используйте следующие операторы для объединения атрибутов.
Пробелы между оператором и его атрибутами не допускаются. Однако допустима постановка пробелов перед запятыми.
Поддерживаемые командлеты
DirectoryИзвлекает каталоги (папки).
-Directory параметр был введен в Windows PowerShell 3,0.
Чтобы получить только каталоги, используйте -Directory параметр и опустите -File параметр. Чтобы исключить каталоги, используйте -File параметр и опустите -Directory параметр, либо используйте -Attributes параметр.
Поддерживаемые командлеты
-File параметр был введен в Windows PowerShell 3,0.
Чтобы получить только файлы, используйте -File параметр и опустите -Directory параметр. Чтобы исключить файлы, используйте -Directory параметр и опустите -File параметр, либо используйте -Attributes параметр.
Поддерживаемые командлеты
HiddenВозвращает только скрытые файлы или каталоги (папки). По умолчанию командлет Get-ChildItem получает только нескрытые элементы.
-Hidden параметр был введен в Windows PowerShell 3,0.
Чтобы получить только скрытые элементы, используйте -Hidden параметр, его h псевдонимы или ah скрытое значение -Attributes параметра. Чтобы исключить скрытые элементы, опустите -Hidden параметр или используйте -Attributes параметр.
Поддерживаемые командлеты
ReadOnlyИзвлекает только файлы или каталоги (папки), доступные для чтения.
-ReadOnly параметр был введен в Windows PowerShell 3,0.
Чтобы получить только элементы, доступные только для чтения, используйте -ReadOnly параметр, его ar псевдоним или значение -Attributes ReadOnly параметра. Чтобы исключить элементы, предназначенные только для чтения, используйте -Attributes параметр.
Поддерживаемые командлеты
SystemИзвлекает только системные файлы или каталоги (папки).
-System параметр был введен в Windows PowerShell 3,0.
Чтобы получить только системные файлы и папки, используйте -System параметр, его as псевдоним или системное значение -Attributes параметра. Чтобы исключить системные файлы и папки, используйте -Attributes параметр.
Поддерживаемые командлеты
NewerThanВозвращает $True , если LastWriteTime значение файла больше указанной даты. В противном случае она возвращает $False .
Введите объект DateTime , например, возвращаемый командлетом Get-Date , или строку, которую можно преобразовать в объект DateTime , например "August 10, 2011 2:00 PM" .
Поддерживаемые командлеты
OlderThanВозвращает $True , если LastWriteTime значение файла меньше указанной даты. В противном случае она возвращает $False .
Введите объект DateTime , например, возвращаемый командлетом Get-Date , или строку, которую можно преобразовать в объект DateTime , например "August 10, 2011 2:00 PM" .
Поддерживаемые командлеты
StreamУправляет альтернативными потоками данных. Введите имя потока. Подстановочные знаки разрешены только в командах Get-Item для и Remove-Item на диске файловой системы.
Поддерживаемые командлеты
Игнорирует символы новой строки. Возвращает содержимое в виде одного элемента.
Поддерживаемые командлеты
ItemTypeЭтот параметр позволяет указать те элемента для создания New-Item
Доступные значения этого параметра зависят от текущего используемого поставщика.
FileSystem В диске допустимы следующие значения:
- Файл
- Каталог
- SymbolicLink
- Соединение
- HardLink
Поддерживаемые командлеты
Использование конвейера
Командлеты поставщика принимают входные данные конвейера. Вы можете использовать конвейер для упрощения задачи, отправив данные поставщика из одного командлета другому командлету поставщика. Дополнительные сведения об использовании конвейера с командлетами поставщика см. в справочнике по командлетам, приведенным в этой статье.
Получение справки
Начиная с Windows PowerShell 3.0, стали доступны настраиваемые разделы справки по командлетам поставщика, в которых объясняется поведение этих командлетов на диске файловой системы.
Чтобы получить разделы справки, настроенные для диска файловой системы, выполните команду Get-Help на диске файловой системы или используйте -Path параметр командлета Get-Help , чтобы указать диск файловой системы.
The Remove-Item cmdlet deletes one or more items. Because it is supported by many providers, it can delete many different types of items, including files, folders, registry keys, variables, aliases, and functions.
Examples
Example 1: Delete files that have any file name extension
This example deletes all of the files that have names that include a dot ( . ) from the C:\Test folder. Because the command specifies a dot, the command does not delete folders or files that have no file name extension.
Example 2: Delete some of the document files in a folder
This example deletes from the current folder all files that have a .doc file name extension and a name that does not include *1* .
It uses the wildcard character ( * ) to specify the contents of the current folder. It uses the Include and Exclude parameters to specify the files to delete.
Example 3: Delete hidden, read-only files
This command deletes a file that is both hidden and read-only.
It uses the Path parameter to specify the file. It uses the Force parameter to delete it. Without Force, you cannot delete read-only or hidden files.
Example 4: Delete files in subfolders recursively
This command deletes all of the CSV files in the current folder and all subfolders recursively.
Because the Recurse parameter in Remove-Item has a known issue, the command in this example uses Get-ChildItem to get the desired files, and then uses the pipeline operator to pass them to Remove-Item .
In the Get-ChildItem command, Path has a value of ( * ), which represents the contents of the current folder. It uses Include to specify the CSV file type, and it uses Recurse to make the retrieval recursive. If you try to specify the file type the path, such as -Path *.csv , the cmdlet interprets the subject of the search to be a file that has no child items, and Recurse fails.
This behavior was fixed in Windows versions 1909 and up.
Example 5: Delete subkeys recursively
This command deletes the "OldApp" registry key and all its subkeys and values. It uses Remove-Item to remove the key. The path is specified, but the optional parameter name (Path) is omitted.
The Recurse parameter deletes all of the contents of the "OldApp" key recursively. If the key contains subkeys and you omit the Recurse parameter, you are prompted to confirm that you want to delete the contents of the key.
Example 6: Deleting files with special characters
The following example shows how to delete files that contain special characters like brackets or parentheses.
Example 7: Remove an alternate data stream
This example shows how to use the Stream dynamic parameter of the Remove-Item cmdlet to delete an alternate data stream. The stream parameter is introduced in Windows PowerShell 3.0.
The Stream parameter Get-Item gets the Zone.Identifier stream of the Copy-Script.ps1 file. Remove-Item uses the Stream parameter to remove the Zone.Identifier stream of the file. Finally, the Get-Item cmdlet shows that the Zone.Identifier stream was deleted.
Parameters
Prompts you for confirmation before running the cmdlet. For more information, see the following articles:
This parameter is not supported by any providers installed with PowerShell. To impersonate another user, or elevate your credentials when running this cmdlet, use Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies, as a string array, an item or items that this cmdlet excludes in the operation. The value of this parameter qualifies the Path parameter. Enter a path element or pattern, such as *.txt . Wildcard characters are permitted. The Exclude parameter is effective only when the command includes the contents of an item, such as C:\Windows\* , where the wildcard character specifies the contents of the C:\Windows directory.
When using Recurse with Exclude, Exclude only filters results of the current directory. If there are files that match the Exclude pattern in subfolders, those files are removed along with its parent directory.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Specifies a filter to qualify the Path parameter. The FileSystem provider is the only installed PowerShell provider that supports the use of filters. You can find the syntax for the FileSystem filter language in about_Wildcards. Filters are more efficient than other parameters, because the provider applies them when the cmdlet gets the objects rather than having PowerShell filter the objects after they are retrieved.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Forces the cmdlet to remove items that cannot otherwise be changed, such as hidden or read-only files or read-only aliases or variables. The cmdlet cannot remove constant aliases or variables. Implementation varies from provider to provider. For more information, see about_Providers. Even using the Force parameter, the cmdlet cannot override security restrictions.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies, as a string array, an item or items that this cmdlet includes in the operation. The value of this parameter qualifies the Path parameter. Enter a path element or pattern, such as "*.txt" . Wildcard characters are permitted. The Include parameter is effective only when the command includes the contents of an item, such as C:\Windows\* , where the wildcard character specifies the contents of the C:\Windows directory.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Specifies a path to one or more locations. The value of LiteralPath is used exactly as it is typed. No characters are interpreted as wildcards. If the path includes escape characters, enclose it in single quotation marks. Single quotation marks tell PowerShell not to interpret any characters as escape sequences.
Type: | String [ ] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies a path of the items being removed. Wildcard characters are permitted.
Type: | String [ ] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Indicates that this cmdlet deletes the items in the specified locations and in all child items of the locations.
The Recurse parameter might not delete all subfolders or all child items. This is a known issue.
This behavior was fixed in Windows versions 1909 and newer.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
This Parameter is only available on Windows.
The Stream parameter is a dynamic parameter that the FileSystem provider adds to Remove-Item . This parameter works only in file system drives.
You can use Remove-Item to delete an alternative data stream, such as Zone.Identifier . However, it is not the recommended way to eliminate security checks that block files that are downloaded from the Internet. If you verify that a downloaded file is safe, use the Unblock-File cmdlet.
This parameter was introduced in Windows PowerShell 3.0. As of Windows PowerShell 7.2, Remove-Item can remove alternative data streams from directories as well as files.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
You can pipe a string that contains a path, but not a literal path, to this cmdlet.
Outputs
None
This cmdlet does not return any output.
Notes
The Remove-Item cmdlet is designed to work with the data exposed by any provider. To list the providers available in your session, type Get-PsProvider . For more information, see about_Providers.
When you try to delete a folder that contains items without using the Recurse parameter, the cmdlet prompts for confirmation. Using -Confirm:$false does not suppress the prompt. This is by design.
Читайте также: