5

これは私の2番目の質問です。基本的に、現時点では、手動で実行し、次のようにCMD行で引数を渡すPowerShellスクリプトを実行しています。

PostBackupCheck.Ps1 C 1 Hello Test Roger 

それらは変数に配置され、スクリプトで使用されます。

次のようなテキストファイルにこれらを1行ずつ追加する方法はありますか?

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 に答える