我目前有一个脚本:
移动逻辑工作正常。但是,如果目录不存在,我会收到此错误(路径有效,但不存在)
C:\Users\User\Documents\Directory\FileName : The term 'C:\Users\User\Documents\ Directory\FileName' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 C:\Users\User\Documents\Directory\FileName + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Users\User\Documents\Directory\FileName) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
奇怪的是,它确实创建了文件夹 - 但它崩溃了我的脚本。
这是脚本的问题部分
function CanCreate($dir) {
return !(Test-Path $dir)
}
if (CanCreate($fullDestinationPath)) {
New-Item $fullDestinationPath -ItemType Directory
}
md
/ mkdir
与New-Item
的行为方式不同,因为它们会使脚本崩溃,但是New-Item
会打印错误并继续(脚本似乎完成了它的工作)。
修改
问题似乎源于我从另一个脚本调用脚本的事实。
$ScriptPath = "C:\Powershell Scripts\script.ps1"
& $ScriptPath | Invoke-Expression
答案 0 :(得分:-1)
问题在于我使用| Invoke-Expression
来触发脚本。
只需拨打& $ScriptPath
,省略| Invoke-Expression
即可触发该脚本。
谢谢大家。