在powershell作业中找不到路径

k10s72fa  于 2023-06-06  发布在  Shell
关注(0)|答案(1)|浏览(343)

数据库testmssqldbnew现在已从示例中删除

Cannot find path 'U:\UserDB\DBBACKUPS\testmssqldbnew_backup' because it does not exist.
At C:\Users\e2cauto1\AppData\Local\Temp\2\jenkins3940685503718462410.ps1:156 char:1
+ Invoke-Command -ComputerName $instance  -ArgumentList $path -ScriptBl ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (U:\UserDB\DBBAC...sqldbnew_backup:String) [Remove-Item], ItemNotFoundEx 
   ception
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
    + PSComputerName        : seliiwsql01.rnd.ericsson.se
 
Build step 'Windows PowerShell' marked build as failure
Finished: FAILURE

运行脚本时出现上述错误。
我想取消这一步,因为我没有找到任何这样的路径在我的机器

U:\UserDB\DBBACKUPS\testmssqldbnew_backup
我使用的脚本

} Write-Host“““Database $database现在已从示例中删除”}
`写入主机““
$file=$database +'_backup'
$path=“U:\UserDB\DBBACKUPS$file”
Invoke-Command -ComputerName $instance -ArgumentList $path -ScriptBlock {
param($path)

Get-ChildItem -Path $path| Remove-Item #-Recurse -ErrorAction停止

Remove-Item -Path $path -Recurse -ErrorAction停止
}
“备份文件$file现已删除”`
但是当我试图删除最后一步删除路径时,我得到了一些其他错误。我是PowerShell的新手。小小的帮助可以感激
我希望取消删除路径的最后一步
写入主机““
$file=$database +'_backup'
$path=“U:\UserDB\DBBACKUPS$file”
Invoke-Command -ComputerName $instance -ArgumentList $path -ScriptBlock {
param($path)

Get-ChildItem -Path $path| Remove-Item #-Recurse -ErrorAction停止

Remove-Item -Path $path -Recurse -ErrorAction停止
}
“备份文件$file现已删除”
我可以把这些线去掉吗

moiiocjp

moiiocjp1#

我稍微优化了一下你的脚本。我还添加了一个检查路径是否存在的条件,因为您的错误消息读起来像目录不存在。
对于您正在使用的cmdlet,在使用Recurse参数时Remove-Item存在一个已知问题。

来源:https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/remove-item?view=powershell-7.3
所以你的脚本应该看起来像这样:

Write-Output "Database $database is now removed from the instance`n"

$file = $database + '_backup'

$path = "U:\UserDB\DBBACKUPS$file"

Invoke-Command -ComputerName $instance -ScriptBlock {
    if (Test-Path $using:path) {
        Get-ChildItem -Path $using:path -Recurse | Remove-Item
    }
}

Write-Output "Backup file $file is now deleted"

相关问题