變量可以包含下劃線。下面的作品和顯示字符串「ASDF」
$a_ = "adsf"; $a_
你New-Item
cmdlet的調用會失敗,因爲$source_
是不是一個變量,會返回null。這是PowerShell的默認行爲。當我運行你的代碼時,我得到以下內容:
New-Item : Cannot find drive. A drive with the name '02/18/2017 22' does not exist.At line:1 char:1
+ New-Item -ItemType Directory -Force -Path "$source_$(Get-Date)" -what ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (02/18/2017 22:String) [New-Item], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.NewItemCommand
所以我會期望你的文件夾變量爲null。 wOxxOm brings this up in comment as well
幾種途徑來解決什麼我肯定是你的問題的部分源。
$BackupFolder = New-Item -ItemType Directory -Force -Path "$source`_$(Get-Date)"
$BackupFolder = New-Item -ItemType Directory -Force -Path "$($source)_$(Get-Date)"
$BackupFolder = New-Item -ItemType Directory -Force -Path ("{0}_{1} -f "$source, Get-Date)
你還是要儘量從副本排除該文件夾,以及像Keith Hill's answer is telling you
Copy-Item $Source\* $BackupFolder -Exclude $BackupFolder
我假設你已經試過管理權 – William
'$ source_'是一個有效的標識符名稱。使用'$($ source)_'或''''source'_''' – wOxxOm
William - 我沒有得到您的問題,如果您詢問有管理員權限的運行Powershell,那麼是運行腳本的帳戶有admin previliges – ATLANTAFALCONS