Powershell从文件传递命名参数

纱彩凉(Ryo Saeba)

我有一个困扰我的问题。

我想使用命名参数自动执行Powershell脚本,但要在另一个Powershell脚本(将充当脚本守护程序)中执行该脚本。

例如:

被调用的脚本之一具有此参数

param(
[int]$version,
[string]$user,
[string]$pass,
[string]$domain,

现在,powershell脚本恶魔会像这样加载文件和参数

$argumentsFromScript = [System.IO.File]::ReadAllText("C:\params.txt") $job = Start-Job { & "ps1file" $arguments} 

params.txt包含这样的数据

-versionInfo 2012 -user admin -pass admin -domain Workgrup

但是,当我尝试执行此代码时,显然整个$ argumentsFromScript变量将被视为参数1(版本),并且我最终遇到错误,无法将“ -versionInfo 2012 -user admin -pass admin -domain Workgrup”转换为Int32 ...

你们知道我如何完成这项任务吗?Powershell守护程序对参数一无所知。他只需要使用给定的命名参数执行脚本即可。params.txt只是一个示例。任何其他文件(csv,ps1,xml等)都可以,我只想自动获取传递给脚本的命名参数。

预先感谢您的任何帮助或建议。

Mjolinor

试试这个:

@'
param ([string]$logname,[int]$newest)
get-eventlog -LogName $logname -Newest $newest
'@ | sc c:\testfiles\testscript.ps1

 '-logname:application -newest:10' | sc c:\testfiles\params.txt

$script = 'c:\testfiles\testscript.ps1'
$arguments = 'c:\testfiles\params.txt'

$sb = [scriptblock]::Create("$script $(get-content $argumentlist)")

Start-Job -ScriptBlock $sb

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PowerShell将命名参数传递给ArgumentList

来自分类Dev

从bat文件向PowerShell传递参数

来自分类Dev

使用传递的参数重命名gradle中的文件

来自分类Dev

PowerShell:命名参数值

来自分类Dev

通过magrittr传递命名参数

来自分类Dev

通过magrittr传递命名参数

来自分类Dev

Java 8命名参数传递?

来自分类Dev

PowerShell重命名文件

来自分类Dev

将团队城市参数传递到PowerShell文件

来自分类Dev

通过Powershell在批处理文件中传递参数

来自分类Dev

通过Powershell在批处理文件中传递参数

来自分类Dev

将命名参数从一个Powershell脚本传递到另一个

来自分类Dev

Powershell类:属性与参数命名

来自分类Dev

在文件之间传递参数

来自分类Dev

Powershell文件重命名语法

来自分类Dev

Powershell文件重命名语法

来自分类Dev

将命名函数作为参数传递

来自分类Dev

将命名参数传递给Shell脚本

来自分类Dev

PowerShell传递带引号的参数

来自分类Dev

Powershell在ScriptBlock中传递参数

来自分类Dev

将参数传递给Powershell

来自分类Dev

在Powershell脚本之间传递参数

来自分类Dev

PowerShell,传递参数的cmdlet别名

来自分类Dev

Powershell在ScriptBlock中传递参数

来自分类Dev

powershell函数中的参数传递

来自分类Dev

如何在命令提示符下将命名数组参数传递给其中包含空格的Powershell脚本?

来自分类Dev

PowerShell中的命名参数显示为“位置”

来自分类Dev

如何为Powershell创建仅命名参数?

来自分类Dev

PowerShell中的命名参数显示为“位置”