Запустите скрипт PowerShell, перетаскивая файлы на его значок.

Вопрос или проблема

Существует ли способ взаимодействовать с PowerShell так же, как с командной строкой?

С командными файлами cmd/bat вы можете перетащить файл/папку на сам скрипт, и он будет оценен как параметр.

Править:

@echo off
cls
echo %1
pause

Этот код приведет к следующему, когда вы перетащите файл на файл скрипта:

введите описание изображения здесь

введите описание изображения здесь

Файлы .ps1 по умолчанию связаны с блокнотом, чтобы предотвратить непреднамеренный запуск, как это можно сделать с .bat, .cmd. Это вопрос управления рисками. Вы можете изменить это обычным способом через проводник, но не рекомендуется.

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

Вы также можете добавить ярлык PowerShell в папку “Отправить”. Щелкните правой кнопкой мыши по вашему скрипту, выберите “Отправить” и выберите созданный вами ярлык PowerShell, или вы можете взломать реестр, чтобы добавить PowerShell в основное контекстное меню проводника и избежать шага “Отправить”, но это требует гораздо больше работы.

В любом случае, это не является стандартной функциональностью, и вам нужно будет создать что-то для автоматического запуска PowerShell exe, когда вы перетаскиваете или отправляете что-то ему.

Вы можете по умолчанию перетаскивать и бросать файл непосредственно в консоль PowerShell или в панель скриптов ISE, если они запущены с использованием текущей учетной записи пользователя. В консоли просто нажмите Enter, в ISE нажмите F5 (или нажмите большую зеленую кнопку).

введите описание изображения здесь

Как указал @LotPings, этот вопрос был задан для Windows 7, но ответ @zdan по-прежнему актуален для текущих версий Windows и PowerShell.

  1. Зажмите Shift и щелкните правой кнопкой мыши по файлу скрипта ps1 и выберите Копировать путь из контекстного меню.
  2. Создайте ярлык в проводнике Windows (В проводнике щелкните правой кнопкой мыши -> создать -> ярлык).
  3. Введите pwsh и при необходимости добавьте -noexit -noprofile , затем -file "путь-до-scrip.ps1", где вы можете использовать путь, который вы скопировали на шаге 0. Если вы вводите путь самостоятельно, убедитесь, что вы используете кавычки.
  4. Если вы допустили опечатку, щелкните правой кнопкой мыши по файлу ярлыка и выберите “Свойства”.

Не добавляйте “%1” или args[0], эти переменные будут доступны в скрипте ps1.

Полный ввод может выглядеть так:

"C:\Program Files\PowerShell\7\pwsh.exe" -noexit -noprofile -file "C:\path\script.ps1"

Если вы не хотите, чтобы окно было видно, добавьте -WindowStyle hidden к команде. (но окно cmd на мгновение вспыхнет)

Ответ или решение

Запуск скрипта PowerShell с помощью перетаскивания файлов на его иконку требует выполнения нескольких шагов, так как файлы .ps1 по умолчанию связаны с блокнотом, а не с выполнением скриптов. Вот подробная инструкция, как это сделать:

  1. Создайте ярлык для PowerShell:

    • Найдите файл pwsh.exe (обычно он находится по пути C:\Program Files\PowerShell\7\ для версии PowerShell 7).
    • Щелкните правой кнопкой мыши на pwsh.exe и выберите "Создать ярлык".
  2. Настройте ярлык:

    • Щелкните правой кнопкой мыши на созданный ярлык и выберите "Свойства".
    • В поле "Объект" добавьте необходимые параметры для выполнения скрипта. Например:
      "C:\Program Files\PowerShell\7\pwsh.exe" -noexit -noprofile -file "C:\путь\к\скрипту.ps1"
    • Убедитесь, что используете кавычки вокруг путей с пробелами.
  3. utilizando drag-and-drop:

    • Теперь, чтобы запускать ваш скрипт, вам нужно будет перетащить файл в ярлык. Для этого просто перекиньте нужный файл на иконку ярлыка, и PowerShell выполнит ваш скрипт с переданным файлом в качестве параметра.
  4. Получение параметров в скрипте:

    • В самом .ps1 скрипте вы можете получить путь к переданному файлу, используя переменную $args. Например:
      $путьКФайлу = $args[0]
      Write-Output "Вы передали файл: $путьКФайлу"
  5. Примечания:

    • Не добавляйте %1 или args[0] в строку ярлыка, так как эти переменные будут автоматически доступны в скрипте.
    • Если вы хотите, чтобы окно PowerShell не закрывалось после выполнения скрипта, используйте -noexit.
    • Чтобы скрыть всплывающее окно, можно добавить параметр -WindowStyle Hidden, однако имейте в виду, что на мгновение окно командной строки может появиться.

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

Оцените материал
Добавить комментарий

Капча загружается...