$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。 函数备份有两个参数,但第一个参数同时获取传递的值。这有什么问题?
答案 0 :(得分:1)
问题在于你正在调用backup
方法,就像你猜测的那样。
在PowerShell中,您不需要使用parantheses,而是使用空格“”分隔参数。另外,逗号,
用于创建数组。
因此,在上面的示例中,您将$source
等于一个以$dir
和$backupfolder
为对象的数组。
尝试:
backup $dir $backupfolder