PowerShell - Как пересчитывают значение переменных

Аватара пользователя
Iska

Re: PowerShell - Как пересчитывают значение переменных

Сообщение Iska »

Код:

Код: Выделить всё

$RemoteHost = "computer1"
$Command = "d:\vlc 210.exe"
Invoke-Command -ComputerName $RemoteHost -ScriptBlock {param($Command) cmd.exe /c """$Command"" /L=1033 /S" } -ArgumentList $Command

-ScriptBlock

By default, any variables in the command are evaluated on the remote computer. To include local variables in the

command, use the ArgumentList parameter.



Для передачи параметров в удаленную сессию, используем параметр ArgumentList.



Код:

Код: Выделить всё

{param($var1,$var2) Command  $var1 $var2}

Или $using:variable:



Код:

Код: Выделить всё

{Command $using:var}
Аватара пользователя
Foreigner

Re: PowerShell - Как пересчитывают значение переменных

Сообщение Foreigner »

c4uran, В переменную $Command поместите всю команду, с аргументами:



Код:

Код: Выделить всё

$command = "dir /b D:\"
$invoke-command -script { cmd /c $command }
Аватара пользователя
c4uran

Re: PowerShell - Как пересчитывают значение переменных

Сообщение c4uran »

Kazun, Да так сработало, спасибо, а почему $Command пришлось вставлять в параметры и в -ArgumentList там же нет аргументов, напишите плиз как лучше передавать путь и аргументы в цикл (хочу написать скрипт по авто-установке тонны софта на тонну компьютеров)



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



Georgio, Ваша запись тоже не сработала Изображение не знаю почему



Iska, А не подскажите почему у меня в ISE вываливаются такие знаки?



Спасибо всем кто отвечает без вас было бы на много сложнее разобраться во всем этом аде!
Аватара пользователя
greg zakharov

Re: PowerShell - Как пересчитывают значение переменных

Сообщение greg zakharov »

Цитата c4uran:



Iska, А не подскажите почему у меня в ISE вываливаются такие знаки?
PowerShell - Как пересчитывают значение переменных




Некорректно использована кодировка. Т.е., вывод приложения идёт в одной кодировке, а ISE пытается его читать в другой кодировке.



greg zakharov, там сам экземпляр объекта обновляет свои свойства, следя за файловой системой. Согласитесь, это совсем не то, о чём говорил автор.
Аватара пользователя
Iska

Re: PowerShell - Как пересчитывают значение переменных

Сообщение Iska »

Подскажите такой момент:



в одной директории лежат 2 файла - script.ps1 и functions.ps1



в файле script.ps1 есть строка:





Код:

Код: Выделить всё

. .\functions.ps1

которая вываливает такую ошибку:





Код:

Код: Выделить всё

. : Имя "functions.ps1" не распознано как имя командлета,
 функции, файла сценария или выполняемой программы.
Проверьте правильность написания имени, а также наличие и
 правильность пути, после чего повторите попытку.
+ . functions.ps1
+   ~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (functions.ps1:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException



т.е я пытаюсь из скрипта вызвать другой скрипт с функциями, почему он не находит этот файл и вываливает такое?
Аватара пользователя
c4uran

Re: PowerShell - Как пересчитывают значение переменных

Сообщение c4uran »

Подскажите такой момент:



в одной директории лежат 2 файла - script.ps1 и functions.ps1



в файле script.ps1 есть строка:





Код:

Код: Выделить всё

. .\functions.ps1

которая вываливает такую ошибку:





Код:

Код: Выделить всё

. : Имя "functions.ps1" не распознано как имя командлета,
 функции, файла сценария или выполняемой программы.
Проверьте правильность написания имени, а также наличие и
 правильность пути, после чего повторите попытку.
+ . functions.ps1
+   ~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (functions.ps1:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException



т.е я пытаюсь из скрипта вызвать другой скрипт с функциями, почему он не находит этот файл и вываливает такое?
Аватара пользователя
Foreigner

Re: PowerShell - Как пересчитывают значение переменных

Сообщение Foreigner »

c4uran, Если запускается из другой директории, то либо пропишите полный путь к functions.ps1, либо используйте автоматическую переменную $myinvocation:



Код:

Код: Выделить всё

. (join-path (get-item $myinvocation.mycommand.path).directory.fullname functions.ps1)

либо functions.ps1 должен быть в $env:path
Аватара пользователя
c4uran

Re: PowerShell - Как пересчитывают значение переменных

Сообщение c4uran »

Спасибо! а как такую запись на batch можно сделать в конвейере PS:





Код:

Код: Выделить всё

dir c: | findstr /i "myfile"&& echo Found! || echo Not Found!
Аватара пользователя
c4uran

Re: PowerShell - Как пересчитывают значение переменных

Сообщение c4uran »

т.е полная запись выглядит так:





Код:

Код: Выделить всё

if ([bool](dir c:\*.txt -ea 0) -eq $true) { echo "found!"} else { echo "not found!" }

а как можно без If ?
Ответить

Вернуться в «Скриптовые языки администрирования Windows»