Скачиваем и распаковываем файл из Интернета при помощи Powershell

Как найти строку в нескольких файлах и вернуть имена файлов в Powershell?

Я начал изучать PowerShell пару дней назад, и я не смог найти в Google ничего, что могло бы сделать то, что мне нужно, поэтому, пожалуйста, ответьте на мой вопрос.

Меня попросили заменить некоторые текстовые строки на несколько файлов. Я не обязательно знаю расширение возможных целевых файлов и не знаю, где они находятся. До сих пор мне удалось рекурсивно просмотреть каталог ( get-ChildItem -recurse ) и найти искомую строку с помощью get-content и select-string:

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

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

Возможно, отредактируйте вопрос, чтобы он был более общим. Кажется, что ответ на этот вопрос не имеет ничего общего с JBoss или вашим приложением, над которым вы работаете .

Я только заметил ваш комментарий и отредактировал мой вопрос . 2 года спустя! лучше поздно, чем никогда .. 🙂

Это должно дать расположение файлов, которые содержат ваш шаблон:

Что делать, если вы также хотите переместить эти файлы? . Я получаю сообщение об ошибке, когда не могу присоединиться к | Move-Item до конца этого.

Get-ChildItem -Recurse | Select-String «dummy» -List | Select Path возвращает только первое совпадение для каждого файла, поэтому может быть немного более эффективным и избавляет от необходимости группировать их

Стоит заметить, что вы можете фильтровать только файлы определенного типа, скажем, txt файлы, если вы используете Get-ChildItem -Recurse -Filter *.txt вместо этого

@ rud3y Я настоятельно рекомендую вам записать это в сценарии с использованием foreach цикла, если вы делаете такие большие операции. Это становится очень запутанным, когда вы пытаетесь сделать все это в одной строке, и очень легко сделать большую ошибку. Я говорю из опыта

Здесь есть множество точных ответов, но здесь приведен наиболее краткий код для нескольких различных вариантов. Для каждого варианта в верхней строке показан полный синтаксис, а в нижней — краткий синтаксис.

Пункт (2) является более сжатой формой ответов от Jon Z и manojlds, тогда как пункт (1) эквивалентен ответам от vikas368 и buygrush.

Список объектов FileInfo для всех файлов, содержащих шаблон:

Список имен файлов для всех файлов, содержащих шаблон:

Список объектов FileInfo для всех файлов, не содержащих шаблон:

Список имен файлов для всех файлов, не содержащих шаблон:

Кроме того, если вы просто ищете файлы, которые содержат шаблон в любом месте, вы можете отказаться от поиска первого экземпляра, используя -List параметр Select-String

Я хотел бы, чтобы ФП задал небольшую вариацию вопроса, чтобы это был АА. # 1 был очень полезен, и очевидно, что @Mikhael Sorens засовывает PS!

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

Скачать по HTTP или HTTPS

DownloadFile

$download_url = «http://download_ahyware/file1.zip»
$local_path = «C:Downloadsfile1.zip»
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($download_url, $local_path)

* в данном примере мы скачаем файл http://download_ahyware/file1.zip и разместим его на компьютере по пути C:Downloadsfile1.zip.

Invoke-WebRequest

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

Invoke-WebRequest -URI https://www.dmosk.ru/files/winsetupfromusb.zip -outfile c:tempwinsetupfromusb.zip

* где URI — путь-источник (что скачиваем); outfile — путь-назначение (куда скачиваем).

Для удобства можно использовать команду wget — по сути, это алиас на Invoke-WebRequest.

2 ответа

Не так уж плохо . Я не могу придумать способ, не рекурсивный все диски, подобные этому.

См. эту страницу для получения информации о поиске индекса.

Здесь будут перечислены все файлы ZIP в порядке уменьшения размера по каталогу на всех доступных дисках:

Или найдите указанный список Приводов /Акций (например, C :, D: и SERVER1 SHARE1 . )

Перемещение файлов через PowerShell на удаленные компьютеры

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

Текущий скрипт, который я использую, ниже

Когда я запускаю это, я получаю следующую ошибку

Однако я попытался удалить -Credential и $ getcred, но я получаю

Это проблема с использованием New-PSDrive или есть другая команда, которая будет работать лучше?

1 ответ 1

Установите исходную переменную, например, $source=’\server1folder’ и исключите из нее звездочку ( * ), как в приведенном примере. Вам не нужно экранировать символы обратной косой черты ( ) с дополнительной обратной косой чертой, поэтому пропустите дополнительные обратные косые черты в путях UNC.

Рассмотрите возможность использования

Примечание. Используйте -Filter для шаблона строки шаблона и т.д.

Похожие вопросы

C# Bunifu — Как я могу использовать / вызывать любой тип элемента управления Bunifu в настраиваемом классе?

Ошибка: «Доступ запрещен для пользователя« root »@« localhost »(с использованием пароля: ДА)» и «НЕТ» оба в Windows 10. Как выполнить вход в систему с правами root?

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector