2017-09-21 7 views
0

私は、入力パラメータを使ってexeを呼び出すpowershellスクリプトを書いています。これは私のコードです:powershellでexeに渡す変数を連結する

param([string]$sourceIP, [string]$destinationIP, [string]$prefix) 
$ErrorActionPreference = "Stop" 
try 
{ 
    Write-Host "Starting Copy of Keyspaces to Dev" 
    Write-Host "Copying One" 
    .\CopyDatabase.exe -s $sourceIP -o $($prefix)_one -d $destinationIP -n $($prefix)_one -c 
    Start-Sleep -s 2 
    Write-Host "Copying Two" 
    .\CopyDatabase.exe -s $sourceIP -o $($prefix)_two -d $destinationIP -n $($prefix)_two -c 
    Start-Sleep -s 2 
    Write-Host "Copying Three" 
    .\CopyDatabase.exe -s $sourceIP -o $($prefix)_three -d $destinationIP -n $($prefix)_three -c 
    Start-Sleep -s 2 
    Write-Host "Copying Four" 
    .\CopyDatabase.exe -s $sourceIP -o $($prefix)_four -d $destinationIP -n $($prefix)_four -c 
    Write-Host "Finished Backup" 
} 
catch 
{ 
    write-host "EXCEPTION:" 
    write-host "Exception Type: $($_.Exception.GetType().FullName)" 
    write-host "Exception Message: $($_.Exception.Message)" 
    exit -1 
} 

私は期待どおりそれはそれは$($prefix)_keyspaceは私がprefix_keyspaceをしたいprefix _keyspaceを与える除いて、働いています。私は関数を書くことができると確信している、または各連結のための新しい変数を作るが、私はそれを行う必要から私を保存するために使用することができますコマンドがあるのだろうか?ありがとう!

+1

'$ {prefix} _one' – PetSerAl

+0

@PetSerAl Perfect、ありがとう –

答えて

0

これにtryブロックを交換してください:

try 
{ 
    Write-Host "Starting Copy of Keyspaces to Dev" 
    Write-Host "Copying One" 
    .\CopyDatabase.exe -s $sourceIP -o ${prefix}_one -d $destinationIP -n ${prefix}_one -c 
    Start-Sleep -s 2 
    Write-Host "Copying Two" 
    .\CopyDatabase.exe -s $sourceIP -o ${prefix}_two -d $destinationIP -n ${prefix}_two -c 
    Start-Sleep -s 2 
    Write-Host "Copying Three" 
    .\CopyDatabase.exe -s $sourceIP -o ${prefix}_three -d $destinationIP -n ${prefix}_three -c 
    Start-Sleep -s 2 
    Write-Host "Copying Four" 
    .\CopyDatabase.exe -s $sourceIP -o ${prefix}_four -d $destinationIP -n ${prefix}_four -c 
    Write-Host "Finished Backup" 
} 

これはあなたの仕事をする必要があります。未検証。

関連する問題