2013-10-05 70 views
1

這一個讓我難住。我已經搜索過「copy-item無法將參數綁定到參數'路徑',因爲它是空的」,並且發現了幾個帖子,其中的答案涉及修復語法以使第一個參數不爲空。據我所知,我的第一個參數不是null,也是正確的類型,我仍然得到相同的錯誤。我也有一個非常類似的腳本運行在另一臺服務器上,沒有問題,這是我開發的模板。複製品無法綁定參數參數'路徑',因爲它是空的

該腳本位於名爲'weekly-archive.ps1'的文件中,並且正由PowerShell控制檯中的'。\ weekly-archive.ps1'調用。

我是在Windows Server上運行的PowerShell 2.0 2008 R2

這裏是有問題的腳本段,完成額外的東西在使用之前打印的變量:

$pathtosource = "\\domainname\backup\servers\windowsimagebackup\" 
$pathtodest = "G:\backup\servers\" 
$images = Get-ChildItem $pathtodest 
foreach ($_ in $images) 
{ 
    $sourcepathname = $pathtosource + $_ 
    $destpathname = $pathtodest + $_ 
    $logresult += "`tSaving '" + $sourcepathname + "' to '" + $destpathname + "' at " + (Get-Date).ToShortTimeString() + ".`n" 
    $sourcepathname 
    $sourcepathname.GetType() 
    $pathtodest 
    $pathtodest.GetType() 
    Copy-Item $sourchpathname $pathtodest -recurse 
    $count += 1 
} 

這裏是輸出結果首$ _ $中的圖像,顯​​示出參數都不爲空,兩個參數實際上是字符串:

PS D:\Administration> .\weekly-archive.ps1 
\\domainname\backup\servers\windowsimagebackup\DC-1 

IsPublic IsSerial Name          BaseType 
-------- -------- ----          -------- 
True  True  String         System.Object 
G:\backup\servers\ 
True  True  String         System.Object 
Copy-Item : Cannot bind argument to parameter 'Path' because it is null. 
At D:\Administration\weekly-archive.ps1:80 char:12 
+   Copy-Item <<<< $sourchpathname $pathtodest -recurse 
    + CategoryInfo   : InvalidData: (:) [Copy-Item], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CopyItemCommand 

我使用「-path」還試圖和'-destination'標誌,作爲AFAIK是可選的。如果我用腳本字符串替換腳本中複製項目行中的'$ sourcepathname',則不會出現錯誤。

最後,下面的線直接鍵入PowerShell控制檯完美地工作:

$sourcepathname = "\\domainname\backup\servers\windowsimagebackup\DC-1" 
$pathtodest = "G:\backup\servers\" 
copy-item $sourcepathname $pathtodest -recurse 

因此,一些顯然是錯誤的與我所用「$ sourcepathname」的,但我不能找到它。請不要猶豫,以證明我的無知....

回答

2

腳本的複製品行上有一個錯字。您有$sourchpathname,它應該是$sourcepathname

+0

Arghh。我知道我檢查過幾次拼寫。不好意思打擾大家這麼明顯的錯誤。 (關閉......) –

+3

您可以啓用嚴格模式來查找和避免這些問題。請參閱http://technet.microsoft.com/en-us/library/hh849692.aspx –

+0

感謝@Lars指出嚴格模式。試了一下,看起來它會有所幫助。 –

相關問題