gpt4 book ai didi

windows - 文件夹上的 Powershell Remove-Item 仅在通过 Ansible 运行时失败

转载 作者:可可西里 更新时间:2023-11-01 11:46:47 26 4
gpt4 key购买 nike

我有一个可以完全删除目录的 powershell 函数。我已经按照 powershell 的建议构建了它(其中有一些额外的跟踪)

function DeleteFolderAndContents()
{
param(
[Parameter(Mandatory=$true, Position=1)] [string] $folder_path
)

Get-ChildItem -Path "$folder_path" -Recurse -Force | Remove-Item -Force -Recurse
Write-Host "Deleted all files in directory. Will attempt to delete directory next"
Start-Sleep 3
Write-Host "Slept for 3 seconds. Now trying to remove folder"
Remove-Item "$folder_path" -Force
Write-Host "DeleteFolderAndContents worked seemingly without error"
while (Test-Path "$folder_path") { Start-Sleep 10 }
}

如果我通过 Powershell cmdline 运行它,它就没有问题。当 Ansible 尝试运行相同的脚本(通过脚本任务)时,Get-ChildItem 部分起作用,删除所有文件夹内容,但 Remove-Item 无法完全删除目录。

我收到以下错误信息

System.Management.Automation.PSArgumentException: 
An object at the specified path C:\\bblabla\\blabla\\blabla\\A.C.S.Api does not exist.
at Microsoft.PowerShell.Commands.FileSystemProvider.NormalizeThePath(String basepath, Stack`1 tokenizedPathStack),
at Microsoft.PowerShell.Commands.FileSystemProvider.NormalizeRelativePathHelper(String path, String basePath)

我不知道为什么会这样。我很确定这是一个 Ansible 问题,但不明白那是怎么回事,我也不知道该怎么办

最佳答案

发现问题。由于我的 Ansible 实现,路径末尾有一个隐藏的尾随空格。出于某种原因,PowerShell 忽略了 Get-ChildItem 调用中的空格,但没有忽略 Remove-Item 调用中的空格。

关于windows - 文件夹上的 Powershell Remove-Item 仅在通过 Ansible 运行时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42846300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com