TypeScript - 将散列 table 作为参数传递给 PowerShell 脚本
TypeScript - pass hash table as an argument to PowerShell script
在打字稿中,我试图将散列 table 作为参数传递给我正在调用的 PowerShell 脚本。
这是我的打字稿
let params = new Map();
params.set('Project', 'Testproject')
params.set('Username', 'John')
params.set('Password', 'Doe')
let script: string = path.join(__dirname, 'Test.ps1');
let command: string = `& ${pathToScriptPSString(script)} ${params}`
测试。ps1 脚本有 3 个参数:项目、用户名和密码。
在 PowerShell 中,这就是我的做法。
$paramsPassed = @{
Test = "hello";
Boolean = $true;
}
function test {
param(
[parameter()]
[string] $Test,
[parameter()]
[boolean] $Boolean
)
Write-Host $Test
Write-Host $Boolean
}
Test @paramsPassed
在打字稿中,我尝试了这些但没有用。
let command: string = `& ${pathToScriptPSString(script)} ${params}`
let command: string = `& ${pathToScriptPSString(script)} @{params}`
提前感谢您的帮助!
我认为您需要将 params
转换为 PowerShell 的参数字符串,如下所示。
let params = new Map();
params.set('Project', 'Testproject')
params.set('Username', 'John')
params.set('Password', 'Doe')
function toPowerShellParams(params) {
let paramsString = ''
params.forEach((key, value) => paramString += `-${key} ${value} `)
return paramString
}
let script: string = path.join(__dirname, 'Test.ps1');
let command: string = `& ${pathToScriptPSString(script)} ${toPowerShellParams(params)}`
在打字稿中,我试图将散列 table 作为参数传递给我正在调用的 PowerShell 脚本。
这是我的打字稿
let params = new Map();
params.set('Project', 'Testproject')
params.set('Username', 'John')
params.set('Password', 'Doe')
let script: string = path.join(__dirname, 'Test.ps1');
let command: string = `& ${pathToScriptPSString(script)} ${params}`
测试。ps1 脚本有 3 个参数:项目、用户名和密码。
在 PowerShell 中,这就是我的做法。
$paramsPassed = @{
Test = "hello";
Boolean = $true;
}
function test {
param(
[parameter()]
[string] $Test,
[parameter()]
[boolean] $Boolean
)
Write-Host $Test
Write-Host $Boolean
}
Test @paramsPassed
在打字稿中,我尝试了这些但没有用。
let command: string = `& ${pathToScriptPSString(script)} ${params}`
let command: string = `& ${pathToScriptPSString(script)} @{params}`
提前感谢您的帮助!
我认为您需要将 params
转换为 PowerShell 的参数字符串,如下所示。
let params = new Map();
params.set('Project', 'Testproject')
params.set('Username', 'John')
params.set('Password', 'Doe')
function toPowerShellParams(params) {
let paramsString = ''
params.forEach((key, value) => paramString += `-${key} ${value} `)
return paramString
}
let script: string = path.join(__dirname, 'Test.ps1');
let command: string = `& ${pathToScriptPSString(script)} ${toPowerShellParams(params)}`