5

这是我的第二个问题是相当快的连续!目前,我基本上正在运行一个 powershell 脚本,我手动执行该脚本并将参数传递给 CMD 行,例如:

PostBackupCheck.Ps1 C 1 Hello Test Roger 

这些被放入变量中并在脚本中使用。

有没有办法可以将这些逐行添加到文本文件中,例如:

C 1 Hello Test Roger 0
C 2 Hello Test Roger 1
C 3 Hello Test Roger 2

然后让Powershell脚本使用第一行,做脚本,然后循环回来使用下一行,做脚本,循环回来等等。

所以在上下文中 - 我需要在以下命名上下文中安装图像

SERVERNAME_DRIVELETTER_b00x_ixxx.spi

在哪里,

SERVERNAME = Some string
DRIVELETTER = Some Char
b00X - where X is some abritrary number
ixxx - where xxx is some abritrary number

所以在我的文本文件中:

MSSRV01 C 3 018
MSSRV02 D 9 119

等等。它使用此信息来装载特定的备份映像(通过 ShadowProtect 的

mount.exe SERVERNAME_DRIVELETTER_b00x_ixxx.spi

谢谢!

4

1 回答 1

4

你可以尝试做这样的事情:

内容p.txt

C 1 Hello Test Roger 0
C 2 Hello Test Roger 1
C 3 Hello Test Roger 2

脚本的内容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"

对脚本的调用:

(Get-Content .\p.txt ) | % { invoke-expression  ".\p.ps1 $_" }

结果:

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

编辑:

编辑后,您可以尝试这样的事情。

Get-Content .\p.txt  | 
% { $a = $_ -split ' ' ; mount.exe  $($a[0])_$($a[1])_b00$($a[2])_i$($a[3]).spi }
于 2012-11-17T17:25:15.653 回答