0
$backupfolder = "\\server\somefolder1\somefolder2\"
$localpath="C:\Documents and Settings\myname\My Documents\FilestoCopytoServer\folder1\"

foreach ($dir in $localpath)
{
    write-host $dir
    if(test-path $dir.fullname -pathtype container)
        {
            write-host "it's a directory"
            write-host "check if this directory is in the remote machine or not"
            $direxists = test-path $remotepath\$dir -pathtype container
                if($direxists)
                {
                write-host "remote machine has this directory"
                recurseandcopyfiles($dir)

            }
             else
            {
            write-host "directory does not exist so create directory"

            createdir($remotepath,$dir)


            }

    }
    else
    {
        write-host "it's not a container so copy files"
        write-host $dir "and backup folder is " $backupfolder

        backup( $dir,$backupfolder)


      }
}

function backup($source,$destination)
{
write-host "inside backup"
write-host "source is " $source "and destination" is $destination
#this is showing I'm getting following: 
# source is  file1.txt \\server\somefolder1\somefolder2\
}

$localpath には file1.txt があるため、バックアップ関数の最初のパラメーターは file1.txt です。関数 backup には 2 つのパラメーターがありますが、最初のパラメーターは渡された両方の値を取得します。ここで何が問題なのですか?

4

1 に答える 1

1

backup問題は、おそらくご想像のとおり、メソッドを呼び出す方法です。

PowerShell では、括弧は必要なく、スペース " " で引数を区切ります。また、カンマ,を使用して配列を作成します。

したがって、上記のサンプルでは$source、​​配列をオブジェクト$dirと同じに設定$backupfolderします。

試す:

backup $dir $backupfolder
于 2013-03-19T16:48:12.833 に答える