1

バックアップの代替として機能するはずのスクリプトに問題があります。これは穴の一部にすぎず、他のものは機能しますが、それに依存しています。

$datum = get-date -uformat "%Y-%m-%d"
$backupsrv = "\\192.168.0.5\"
$logpath = "$backupsrv\logs\$datum"
$test1 = "d:\test1","$backupsrv\b2d\test1","Test1"
$test2 = "c:\test2","$backupsrv\b2d\test2","Test2"
$programs = ($test1,$test2)

if (!(test-path -path $logpath))
{new-item $logpath -type directory}

function backup{
    param
    (
        [Parameter(Position=0,Mandatory=$true)]
        [String] $Source,

        [Parameter(Position=1,Mandatory=$true)]
        [String] $Target,

        [Parameter(Position=2,Mandatory=$true)]
        [String] $Name
    )

    if (!(test-path -path $target))
    {new-item $target -type directory}

    $LogFile = "$logpath\$name.log"

    robocopy "$Source" "$Target" /e /mir /np /ns /z /r:3 /w:30 /xf thumbs.db >>$logfile
}
foreach ($program in $programs){
    backup $program}

パラメータ処理で常にエラーが発生します。

誰かがこれで私を助けることができますか?ありがとう!!

4

1 に答える 1

1

3つの別々の文字列ではなく、string [](実際には)を渡したと見なされます。これは実際に機能します:

foreach ($program in $programs){
    backup $program[0] $program[1] $program[2]
}

必要に応じて、文字列配列を受け入れるように関数を設定できます。

于 2013-03-11T18:41:09.550 に答える