有没有一种方法可以使用Powershell Start-Process cmdlet启动新的Powershell会话并传递带有局部变量的脚本块(其中一次将是数组)?
例:
$Array = @(1,2,3,4)
$String = "This is string number"
$Scriptblock = {$Array | ForEach-Object {Write-Host $String $_}}
Start-Process Powershell -ArgumentList "$Scriptblock"
Run Code Online (Sandbox Code Playgroud)
谢谢。
有人可以解释吗?我正在运行以下Powershell命令,两个“测试”之间的双倍空格将转换为一个空格。使用PS 3.0。
Start-Process Powershell -ArgumentList "-Command Write-Host test test;pause"
Start-Process Powershell -ArgumentList "-Command Write-Host 'test test';pause"
Start-Process Powershell -ArgumentList "Write-Host 'test test';pause"
Run Code Online (Sandbox Code Playgroud)
下面的脚本调用(仅包含$ String参数和Write-Host $ String; pause)可以正常工作,但在同一会话中执行:
& C:\Test\Test.ps1 -String 'test test'
Run Code Online (Sandbox Code Playgroud)
但是下面用单个空格代替了双精度空格:
Start-Process Powershell -ArgumentList "& C:\Test\Test.ps1 -String 'test test'"
Run Code Online (Sandbox Code Playgroud)
我需要能够在当前会话之外运行另一个PS脚本,并将参数传递给可能包含此类双精度空格的脚本。谢谢!
我正在学习Powershell并尝试创建一个类似于此处示例的GUI界面.
但是,当我按原样运行时,$x从未定义过.知道我可能做错了吗?我知道它与以下内容有关:
$OKButton.Add_Click({$x=$objListBox.SelectedItem;$objForm.Close()})
因为如果我将其更改为:
$OKButton.Add_Click({Write-Host "worked";$objForm.Close()})
它确实回来了worked.
是否可以使用Powershell regex命令将文本字符串中的最后一个连续零替换为“ M”。例如:
$Pattern = @("000123456", "012345678", "000000001", "000120000")
Run Code Online (Sandbox Code Playgroud)
最后结果:
00M123456
M12345678
0000000M1
00M120000
Run Code Online (Sandbox Code Playgroud)
谢谢。
我可以在Powershell中使用正则表达式在数组中的项之后添加空格,以便每个项的字符长度等于15吗?
Dog[12 spaces]
Tiger[10 spaces]
Elephant[7 spaces]
Run Code Online (Sandbox Code Playgroud)
谢谢.