Powershell существует ли файл

Обновлено: 07.07.2024

Просмотр содержимого дисков 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 представляет собой массив, содержащий в каждом элементе имя компьютера.


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

PowerShell. Проверить существует ли файл или папка

Если нужно проверить, существует ли папка или файл в скрипте PowerShell, то нужно воспользоваться командой «Test-Path». Она возвращает «True», если файл или папка существует, и «False», если файла или папки нет.

Более подробную информацию о возможностях команды “Test-Path” можно узнать, введя в консоли PowerShell команду «man Test-Path». С помощью этой команды можно работать не только с папками и файлами, но и, к примеру, с переменными окружения Windows и ветками реестра.

  • 17 декабря 2014, Alexey
  • Windows и программы
  • Тэги: PowerShell, windows, отладка
  • 7 комментариев

Что такое PowerShell и чем он хорош

Пользователи UNIX и Linux, а с какого-то мoмента и macOS привыкли к тому, что под рукой всегда есть Bash — немного старомодное, но универсальное и мощное средство, при помощи которого всего парой строк можно творить удивительные вещи. Прописываешь новый скрипт в cron — и готово, он уже крутится на твоем компьютере или на сервере и незаметно делает что-нибудь полезное.

Возвращаясь в Windows (а без этого иногда никак), понимаешь, что скрипты .bat хоть и хороши, но спасают не всегда: очень уж ограниченны их возможности. И если ты до сих пор считал, что PowerShell — это неведомая штуковина, ради которой нужно что-то там поднимaть и настраивать, то не спеши с выводами — он, если разобраться, совсем неплох.

В общем, «пошик» имеет крепкие связи с продуктами Microsoft, будь то Active Directory или почтовый сервер Exchange. Это позволяет без подключения к оснастке сервера обращаться к ним через консоль и отдaвать команды.

Если раньше ты не интересовался PowerShell, то, скорее всего, у тебя стоит вторая версия. Я рекомендую обновиться как минимум до третьей — она содержит куда больше возможностей и полезных фишек. Если не вдаваться в подробности, то в PowerShell 2.0 входит около десятка модулей и примерно 350 команд, а в PowerShell 3.0 уже около 2300 командлетов из более чем 70 модулей. «Хакер» также писал о том, чем отличается самый новый PowerShell пятой версии из Windows 10.

Как с помощью PowerShell загрузить файл на компьютер?

В данном примере, нам понадобится вот такая команда:

Как видите, все просто. Вместо «Ссылка на скачивания» мы указываем ссылку на необходимый файл, который необходимо скопировать. Запомните, команда должна быть именно такой, не пропустите необходимые кавычки и скобки. В «Путь к файлу» мы указываем, куда будем сохранять наш файл, не забудьте в конце дописывать название файла и его расширение.

Таким образом, мы получаем в пример следующую команду:

Если вы хотите загрузить файл в Dropbox или какой-то другой подобный сервис, то в эту службу, конечно, нужно будет войти, для этого, мы между уже данными командами вставим еще одну:

$ = Get-Credential

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

Таким образом, команда для аутентификации и закачки файла будет выглядеть следующим образом:

Убедитесь, что у вас есть прямая ссылка на скачиваемый файл, иначе , у вас может ничего не получится. А на этом все, это был, так сказать, краткий экскурс возможностей утилиты PowerShell, у нас еще будет много статей о данном инструменте.

Создание сценария с использованием интегрированной среды сценариев (ISE)

Кроме того, вы можете использовать консоль PowerShell ISE для написания сценариев в Windows 10.

После того как вы выполнили эти шаги, используя Notepad или PowerShell ISE, скрипт готов к запуску, но он не будет выполнен. Это связано с тем, что стандартные настройки PowerShell всегда устанавливаются таким образом, чтобы блокировать выполнение любого сценария.

Переименование нескольких файлов из командной строки

Если вам нужно больше возможностей вы можете использовать rename или ren команду в окне командной строки для одного или нескольких файлов.

Команда принимает подстановочные символы , такие как * и ? для согласования нескольких файлов, которые могут быть полезны , если вы только хотите переименовать определенный набор файлов в папке .

Самый быстрый способ открыть окно командной строки в нужном место это сначала нужно открыть папку в File Explorer. В меню «Файл» выберите пункт «Открыть командную строку», а затем выберите пункт «Открыть командную строку».

Чтобы переименовать один файл, вы можете использовать следующий синтаксис команды:

Эти кавычки необходимы, если ваши имена файлов содержат пробелы. Если пробелов нет то вы не нуждаетесь в кавычках. Так, например, переименовать файлы с «WordFile (1) .docx» в «файл (01) .docx»используем следующую команду:

ren «wordfile (1).docx» «my word file (01).docx»

Поскольку ren команда может использоваться и для изменения расширения файла, вы можете также использовать его для изменения расширений нескольких файлов одновременно. Скажем, например, у вас был выбор .txt файлов которые вы хотели , чтобы они превратились в .html файлы. Вы можете использовать следующую команду вместе с шаблоном подстановки звёздочкой * :

Другие вопросы по пользованию

У многих возникает вопрос, как узнать версию PowerShell? Для этого выполните следующее:

  1. Откройте приложение.
  2. Введите $PSVersionTable.
  3. Если это ни к чему не привело, значит, у вас версия 1.0 — для неё есть команда $
  4. В ином случае появится подробная информация о том, какая версия приложения установлена на ПК.

Ещё один вопрос, на который стоит дать ответ — как удалить PowerShell? Для этого потребуются такие действия:

  • Зайдите через Панель управления в меню установки и удаления программ.
  • Найдите ветку Microsoft Windows
  • Удалите обновление для компонента WindowsPowerShell ™ , следуйте инструкциям системы.

Теперь вы знаете всё о том, как писать и запускать скрипты PowerShell, сможете пользоваться такой командной строкой для многих операций в системе. Дополнительно вы всегда имеете возможность узнать версию этого продукта и даже частично удалить его — из-за того, что он установлен вместе с системными компонентами, полностью сделать это всё равно не получится. Посоветуем только быть аккуратным при выполнении всех подобных действий, чтобы не навредить компьютеру в целом.

Легкое Исправление

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

Понятно, кто в этом случае виновник. Найдите файл в проводнике Windows или в проводнике, как он называется в Windows 10, нажмите один раз на него, нажмите F2, чтобы переименовать его, и измените это глупое имя файла на более разумное. Задача решена.

Менее простые исправления

Не всегда легко решить эту проблему. Иногда вы не можете изменить имена файлов или каталогов по любой причине.

Следующие решения помогут вам. Их несложно сделать.

Обратите внимание, что слова каталог и папка являются взаимозаменяемыми. Мы будем использовать «каталог» в будущем. Следующие командлеты PowerShell также можно использовать для файлов.

Возможно, путь к файлу выглядит примерно так:

Этот путь к файлу составляет 280 символов. Поэтому мы не можем скопировать каталог оттуда куда-либо еще с помощью обычного метода копирования-вставки. Мы получаем ошибку Destination Path Too Long.

Давайте предположим, что по какой-то причине мы не можем переименовать каталоги, в которые вложен файл. Что мы делаем?

Каталог с именем This находится в каталоге Documents. Чтобы перейти в каталог Documents, мы используем команду cd Documents.

Вы увидите быстрое изменение текущего каталога на C:\Users\guymc\Documents. Это хорошо. Мы работаем ближе к каталогам, которые облегчат жизнь.

Копирование каталога с использованием Copy-Item

Мы хотим скопировать каталог This и его содержимое в ThatNewFolder. Давайте используем команду PowerShell Copy-Item с параметрами -Destination и -Recurse.

-Destination сообщает PowerShell, где мы хотим, чтобы копия находилась. -Recurse говорит PowerShell скопировать все элементы внутри к месту назначения. Копирование оставляет оригиналы там, где они есть, и делает все новые в месте назначения.

Copy-Item This -Destination ThatNewFolder -Recurse

Переместить каталог с помощью Move-Item

Допустим, мы хотим переместить каталог This, а также все каталоги и файлы в нем, в ThatNewFolder. Перемещение не оставляет оригинал на месте.

Мы можем использовать команду PowerShell Move-Item с параметрами -Path и -Destination. -Path определяет элемент, который мы хотим переместить, и -Destination сообщает PowerShell, где мы хотим его получить.

Команда поместит это в ThatNewFolder. Он также будет перемещать все, что находится внутри этого каталога. Move-Item может использоваться для перемещения файлов или каталогов, и он работает независимо от пути к файлу или длины имени файла.

Move-Item -Path This -Destination ThatNewFolder

Чтобы убедиться, что это работает, используйте команду cd ThatNewFolder, чтобы войти в ThatNewFolder. Затем используйте команду dir для вывода списка каталогов в ThatNewFolder. Вы увидите, что этот каталог находится там.

Удалить каталог с помощью Remove-Item

Если мы хотим удалить этот каталог и все в нем, мы используем команду Remove-Item.

Командлет Remove-Item обладает некоторой встроенной безопасностью, которая затрудняет удаление каталога с содержимым внутри него. В нашем примере мы знаем, что хотим удалить все, поэтому мы будем использовать параметры -Recurse, чтобы заставить его удалять все внутри, и -Force, чтобы он делал это, не спрашивая нас, уверены ли мы в каждом элементе внутри.

Имейте в виду! Восстановить что-либо удаленное таким образом было бы чрезвычайно сложно.

Remove-Item This -Recurse -Force

Вы можете снова использовать команду dir, чтобы убедиться, что она пропала.

Вот и все

Как подсчитать контрольную сумму файла из консоли Windows

Чтобы посчитать контрольную сумму совсем не обязательно устанавливать специальные программы. И если вы не пользуетесь упомянутыми выше, то можете рассчитать контрольную сумму прямо из командной строки операционной системы.

Например, чтобы посчитать контрольную сумму SHA1 с помощью утилиты CertUtil нужно запустить командную строку Windows 10, 8 или Windows 7 и ввести следующую команду:

certutil -hashfile путь_к_файлу алгоритм

Вот пример ее работы через несколько минут:

Считаем контрольную сумму в PowerShell

PowerShell — это средство автоматизации от Microsoft, с интерфейсом командной строки и языка сценариев, работает и включена в состав Windows 8 и новее.

Чтобы вычислить контрольную сумму файла необходимо выполнить команду Get-FileHash указав через пробел имя файла и алгоритм вычисления контрольной суммы:

Get-FileHash "Disk:\Full Path to file\File " -Algorithm SHA1

Обратите внимание, что полный путь и имя файла лучше заключить в двойные кавычки.

По-умолчанию, если не указать тип контрольной суммы, то будет посчитана SHA-256.

Для алгоритмов вычисления контрольной суммы в Windows PowerShell поддерживаются следующие значения:

Как подсчитать контрольную сумму файла из консоли Windows

  • SHA1
  • SHA256 (по умолчанию)
  • SHA384
  • SHA512
  • MD5

Для оформления вывода в виде списка можно использовать параметр | Format-List. Например:

Get-FileHash "Disk:\Full Path to file\File " | Format-List

Тогда результат работы будет выглядеть так:

Какой алгоритм вычисления контрольных сумм самый правильный

MD5, SHA-1, SHA-256 и прочие – это разные алгоритмы хеш-функции. Хэши являются результатом работы криптографических алгоритмов, и представляют собой строку символов. Часто эти строки имеют фиксированную длину, независимо от размера входных данных.

Как подсчитать контрольную сумму файла из консоли Windows

MD5 самый быстрый, считается устаревшим, а SHA-256 имеет наименьшую вероятность коллизии, когда два разных файла имеют одинаковую контрольную сумму.

Для проверки целостности файла вам следует использовать тот, который предоставляет издатель. Если у вас на выбор есть несколько контрольных сумм, то лучше выбрать в следующей последовательности MD5, SHA-1, SHA-256, последний вариант является более предпочтительным.

Инициализация многомерного массива

Дополнения к вышеописанным объектам существуют ещё объекты ArrayList, OrderedDictionary, PSObject, которые могут быть полезны вам для хранения и обработки значений. Возможно в дальнейшем я опишу их в отдельной статье. И расскажу про отличия от массивов и хеш-таблиц. Но пока я этого не сделал, то настоятельно рекомендую Вам самостоятельно поискать в Интернет информацию о PSObject. Это мощное средство, которое в чём-то похоже на Hashtable, при этом обладает большей производительностью.

Как выполнить поиск файлов в командной оболочке PowerShell?


Содержание

Командлет Поиска Файлов

Поиск файлов в PowerShell осуществляется с помощью командлета Get-ChildItem . Вызов данного командлета без аргументов выполнит вывод содержимого текущей директории.


У данного командлета присутствуют несколько псевдонимов (aliases) - ls , dir , gci .


Разберем аргументы командлета позволяющие выполнить поиск файлов.

Поиск По Маске

Аргументы командлета Get-ChildItem позволяют выполнить поиск файлов. Доступные параметры, маска имени файла (-Filter), стартовая директория поиска (-Path), и возможность рекурсивного поиска в поддиректориях (-Recurse).

Поиск по маске, для примера осуществим вывод всех файлов с расширением ZIP.


Файловые маски не могут содержать регулярных выражений, только стандартные "*" (любое количество символов) и "?" (один любой символ).


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


Параметр -Path позволяет задать путь начала поиска. Так же он допускает использовать символы файловых масок. Можно совмещать комбинацию фильтров в параметре -Path и -Filter.

Выведем содержимое диска C:\.


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

Попробуем найти все файлы с расширением *.msc на диске C:\.


Как вы могли заметить, при выводе содержимого диска C:\ отсутствовали скрытые файлы. Отображение скрытых и системных файлов задается атрибутами, о которых поговорим далее.

Поиск По Атрибутам

По умолчанию, скрытые файлы не попадают выходной список командлета Get-ChildItem . Вывод файлов с различными атрибутами, такими как скрытый, системный и прочее, можно задать с помощью параметра -Attributes.

Возможные значения для данного параметра можно посмотреть во встроенной справке по командлету ( Get-ChildItem -? ).

Важные, или популярные, атрибуты вынесены в отдельные параметры, а именно -Directory, -File, -System, -Hidden.


Попробуем посмотреть файлы скрытые файлы на диске C:\.


При указании параметра -Hidden выводятся только скрытые файлы и папки.

С параметром -Attributes все иначе. Он позволяет комбинировать файловые атрибуты. Доступны три операции:

! - NOT, исключает файлы с данным атрибутом (!Directory)
+ - AND, включает файлы со всеми указанными атрибутами (System+Hidden)
, - OR, включает файлы с хотя бы с одним указанным атрибутом (System, Hidden, Directory)

Модификаторы можно комбинировать.


Сами названия атрибутов можно сокращать, что собственно и было продемонстрировано выше.

Поиск По Дате

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

Пример фильтрации вывода команды по дате, с применением псевдонимов.


Для командлета Where-Object можно задать так же другие условия, или даже несколько условий. Подробнее об этом можно узнать в справке по данному командлету.

Поиск По Содержимому

Поиск по содержимому, предполагает обход всех файлов с целью найти в них искомый текст. Выполнить данную операцию можно с помощью передачи всех файлов по конвейеру командлету Select-String .

Для примера я создал три текстовых файла с текстом:

1.txt (first)
2.txt (second)
3.txt (first second third)


Структура расположения файлов следующая.


Теперь примеры поиска текста в данных файлах с помощью PowerShell.



Использование Найденных Файлов

Полученные списки файлов, всеми вышеописанными способами, можно передавать по конвейеру таким командлетам как Remove-Item , Move-Item , Copy-Item и прочим подобным. Тем самым упрощая работу с полученными файлами.

Файл был разработан для использования с программным обеспечением . Здесь вы найдете подробную информацию о файле и инструкции, как действовать в случае ошибок, связанных с powershell.exe на вашем устройстве. Вы также можете скачать файл powershell.exe, совместимый с устройствами Windows 10, Windows 8.1, Windows 8, Windows 7, Windows 7, которые (скорее всего) позволят решить проблему.

For Windows

Совместим с: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows 7

Исправьте ошибки powershell.exe

Информация о файле

Основная информация
Имя файла powershell.exe
Расширение файла EXE
Описание Windows PowerShell
Программного обеспечения
программа Microsoft® Windows® Operating System
автор Microsoft Corporation
подробности
MIME тип application/octet-stream
Тип файла Executable application
система Windows NT 32-bit
Авторские права © Microsoft Corporation. All rights reserved.
Набор символов Unicode
Языковая треска English (U.S.)

powershell.exe

Наиболее распространенные проблемы с файлом powershell.exe

  • powershell.exe поврежден
  • powershell.exe не может быть расположен
  • Ошибка выполнения - powershell.exe
  • Ошибка файла powershell.exe
  • Файл powershell.exe не может быть загружен. Модуль не найден
  • невозможно зарегистрировать файл powershell.exe
  • Файл powershell.exe не может быть загружен
  • Файл powershell.exe не существует

powershell.exe

Не удалось запустить приложение, так как отсутствует файл powershell.exe. Переустановите приложение, чтобы решить проблему.

Проблемы, связанные с powershell.exe, могут решаться различными способами. Некоторые методы предназначены только для опытных пользователей. Если вы не уверены в своих силах, мы советуем обратиться к специалисту. К исправлению ошибок в файле powershell.exe следует подходить с особой осторожностью, поскольку любые ошибки могут привести к нестабильной или некорректно работающей системе. Если у вас есть необходимые навыки, пожалуйста, продолжайте.

Помните, прежде чем предпринимать какие-либо действия, связанные с системными файлами, сделайте резервную копию ваших данных!

Шаг 1.. Сканирование компьютера на наличие вредоносных программ.

Virus Scan

Файлы Windows обычно подвергаются атаке со стороны вредоносного программного обеспечения, которое не позволяет им работать должным образом. Первым шагом в решении проблем с файлом powershell.exe или любыми другими системными файлами Windows должно быть сканирование системы на наличие вредоносных программ с использованием антивирусного инструмента.

Если по какой-либо причине в вашей системе еще не установлено антивирусное программное обеспечение, вы должны сделать это немедленно. Незащищенная система не только является источником ошибок в файлах, но, что более важно, делает вашу систему уязвимой для многих опасностей. Если вы не знаете, какой антивирусный инструмент выбрать, обратитесь к этой статье Википедии - сравнение антивирусного программного обеспечения.

Читайте также: