+ Ответить в теме
Показано с 1 по 3 из 3

Тема: Запуск скрипта в PowerShell в передачей аргументов из cmd файла

  1. #1
    falconi is on a distinguished road
    Регистрация
    11.10.2017
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Запуск скрипта в PowerShell в передачей аргументов из cmd файла

    Доброго дня!

    Опыта в программировании нет. Поэтому сразу прошу прощения за все ляпы и ересь...

    Стоит задача: запустить скриптом Excel, открыть определенный документ и выполнить макрос.
    Я сделал это как cмог в PowerShell.
    Но запускать этот скрипт нужно из программы, которая не дружит с PowerShell, а соответственно запускаю из этой программы cmd-файл, следующего содержания:

    Код :
    1. powershell -ExecutionPolicy bypass -File C:\Script\NEW_Sticker_2.ps1

    И далее выполняется сам NEW_Sticker_2.ps1:

    Код :
    1. $excel = new-object -comobject excel.application
    2. $xlprocess = Get-Process excel
    3. $excel.Visible = $False
    4. $excel.DisplayAlerts = $False
    5. $excelFiles = Get-ChildItem -Path C:\workfiles\ -Include *.xls, *.xlsx -Recurse
    6. Foreach($file in $excelFiles)
    7. {
    8. $workbook = $excel.workbooks.open($file.fullname)
    9. $worksheet = $workbook.worksheets.item(1)
    10. $excel.Run("Personal.xlsb!Export")
    11. }
    12. $workbook.Close()
    13. $excel.Quit()
    14. $xlprocess | kill[/B]

    Все работает, но только с постоянно прописанным путём к обрабатываемому файлу (C:\workfiles\).

    Пожалуйста, помогите.
    Можно ли из первого cmd-файла как-нибудь передать параметром путь к обрабатываемому файлу, который каждый раз меняется?
    Первому файлу этот параметр (путь) может сообщить запускающая его программа как параметр...

    Или может я вообще левой рукой правое ухо чешу?
    И можно все прощу сделать...
    Последний раз редактировалось Romeo; 11.10.2017 в 19:35. Причина: [code][/code]

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Moderator Куратор
    system architect
    Romeo is on a distinguished road Аватар для Romeo
    Регистрация
    02.03.2004
    Адрес
    Крым, Севастополь
    Возраст
    36
    Сообщений
    3,032
    Вес репутации
    20

    По умолчанию Re: Запуск скрипта в PowerShell в передачей аргументов из cmd файла

    Да можно. Вот так:
    Код :
    1. powershell -ExecutionPolicy bypass -File C:\Script\NEW_Sticker_2.ps1 C:\workfiles
    Обращаться к параметру внутри PowerShell скрипта можно будет через $args[0].

    P.S. А что помешало нагуглить данный вопрос? Я сам не знаю PowerShell совсем, но гугл сразу подсказал куда мне идти и что читать.

    P.P.S. Раздел неправильно выбран. Shell и PowerShell - вещи абсолютно разные.
    Entites should not be multiplied beyond necessity @ William Occam
    ---
    Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
    ---
    Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

  4. #3
    falconi is on a distinguished road
    Регистрация
    11.10.2017
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Запуск скрипта в PowerShell в передачей аргументов из cmd файла

    Romeo, спасибо!

    Гуглил, пробовал этот метод, но только отправляя аргумент(путь) из программы в cmd-файл. И он не работал.
    Сейчас попробовал сразу задать путь в cmd-файле. все работает.
    Значит проблема в передаче аргумента...

+ Ответить в теме

Похожие темы

  1. Запуск exe-файла в Excel ?
    Коллеги ! Нет ли в Excel средств запуска exe-файла, кроме функции Shell, входящей в состав VBA ?
    от Хфедя в разделе MS Office и VB(A).
  2. Автоматический запуск файла в Excel по условию
    Посмотрела форум и мне показалось , что здесь мне смогут помочь... Задача: Есть две ячейки в Excel - в первой параметр(А1), во второй текст(B1)....
    от Дориана в разделе MS Office и VB(A).
  3. Запуск файла из оперативной памяти.
    Здравствуйте ! Известно, что при помощи функции Win32Api ShellExecute можно например запустить какой либо файл на выполнение, либо открыть файл,...
    от Вячеслав в разделе Win API, Shell..
  4. Запуск JAR-файла + параметр
    Всем привет !!! Вот такая проблема: В JBuilder запускается проект с параметром -Xmx110m (иначе вылетает OutOfMemoryError)- работает без ошибок...
    от Oleg_S в разделе Java
  5. Запуск какой-либо проги из скрипта от имени пользователя
    Народ, подскажите кто-нить как запустить прогу из скрипта от имени какого-либо пользователя? Заранее спасибо.
    от Anonymous в разделе JScript, VBScript, DHTML...

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения