В ES5 и ранее вы должны создать этот объект с помощью ряда операторов:
var dictObj = {};
dictObj[myObj.action1] = "action1";
dictObj[myObj.action2] = "action2";
dictObj[myObj.action3] = "action3";
Начиная с ES2015 (иначе ES6), вы можете сделать это с именами вычисляемых свойств в вместо этого инициализатор объекта:
let dictObj = {
[myObj.action1]: "action1",
[myObj.action2]: "action2",
[myObj.action3]: "action3"
};
Вы можете использовать любое выражение внутри []
для создания имени свойства; в этом случае это просто простой поиск свойств.
В обоих случаях обратите внимание, что нет отношения live ; если вы измените myObj.action1
на 42 позже , после выполнения вышеизложенного это не влияет на имя свойства в dictObj
.
Либо вы объявляете параметры в начале вашего скриптового блока:
{
param($user,$unsecurepassword)
net use P: \\Server\dir1\dir2 /persistent:no /user:$User $UnsecurePassword
Get-EventLog -LogName System -After (Get-Date).AddHours(-12) -EntryType Error, Warning | format-list |
out-file P:\EventLog_$env:COMPUTERNAME.log
net use P: /delete /yes
}
Или вы присоединяетесь к своим аргументам с помощью переменной $args
:
#first passed parameter
$args[0]
#second passed parameter
$args[1]
....
Документация: MSDN
В качестве альтернативы вы можете использовать область $Using:
. Пример:
$servicesToSearchFor = "*"
Invoke-Command -ComputerName $computer -Credential (Get-Credential) -ScriptBlock { Get-Service $Using:servicesToSearchFor }
С помощью $Using:
вам не нужен параметр -ArgumentList
, а параметр $Using:
f5] в скриптблоке.
param()
совпадают с теми, которые вы проходите через-ArgumentList
. Я узнал, что один из трудных способов, когда мой компьютер все время отображался как мой ID пользователя lol – nkasco 31 March 2016 в 12:26