这是我的第二个问题,相当快的接班人!基本上目前,我正在运行一个 powershell 脚本,我手动执行该脚本并将参数传递给 CMD 行,例如:
PostBackupCheck.Ps1 C 1 Hello Test Roger
Run Code Online (Sandbox Code Playgroud)
这些被放入变量并在脚本中使用。
有没有办法将这些逐行添加到文本文件中,例如:
C 1 Hello Test Roger 0
C 2 Hello Test Roger 1
C 3 Hello Test Roger 2
Run Code Online (Sandbox Code Playgroud)
然后让Powershell脚本使用第一行,执行脚本,然后循环返回并使用下一行,执行脚本,循环返回等等。
所以在上下文中 - 我需要在以下命名上下文中安装图像
SERVERNAME_DRIVELETTER_b00x_ixxx.spi
Run Code Online (Sandbox Code Playgroud)
在哪里,
SERVERNAME = Some string
DRIVELETTER = Some Char
b00X - where X is some abritrary number
ixxx - where xxx is some abritrary number
Run Code Online (Sandbox Code Playgroud)
所以在我的文本文件中:
MSSRV01 C 3 018
MSSRV02 D 9 119
Run Code Online (Sandbox Code Playgroud)
等等。它使用此信息来安装特定的备份映像(通过 ShadowProtect 的
mount.exe SERVERNAME_DRIVELETTER_b00x_ixxx.spi
Run Code Online (Sandbox Code Playgroud)
谢谢!
你可以尝试做这样的事情:
内容p.txt:
C 1 Hello Test Roger 0
C 2 Hello Test Roger 1
C 3 Hello Test Roger 2
Run Code Online (Sandbox Code Playgroud)
脚本的内容p.ps1
param($a,$b,$c,$d,$e,$f)
"param 1 is $a"
"param 2 is $b"
"param 3 is $c"
"param 4 is $d"
"param 5 is $e"
"param 6 is $f"
"End Script"
Run Code Online (Sandbox Code Playgroud)
对脚本的调用:
(Get-Content .\p.txt ) | % { invoke-expression ".\p.ps1 $_" }
Run Code Online (Sandbox Code Playgroud)
结果:
param 1 is C
param 2 is 1
param 3 is Hello
param 4 is Test
param 5 is Roger
param 6 is 0
End Script
param 1 is C
param 2 is 2
param 3 is Hello
param 4 is Test
param 5 is Roger
param 6 is 1
End Script
param 1 is C
param 2 is 3
param 3 is Hello
param 4 is Test
param 5 is Roger
param 6 is 2
End Script
Run Code Online (Sandbox Code Playgroud)
编辑:
编辑后你可以尝试这样的事情。
Get-Content .\p.txt |
% { $a = $_ -split ' ' ; mount.exe $($a[0])_$($a[1])_b00$($a[2])_i$($a[3]).spi }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |