gpt4 book ai didi

Powershell move 项目访问被拒绝

转载 作者:行者123 更新时间:2023-12-03 21:03:53 24 4
gpt4 key购买 nike

使用按钮运行 PS 表单。按钮按下做一些事情然后调用一个模块。我需要使用该模块将文件夹从 D:\FolderName01\MyFolderName move 到 D:\FolderName02。

我以管理员身份登录。服务器 2012-R2

代码确实 不是 当从按钮按下调用时运行并且自动脚本运行。

确实 当我编辑代码时运行没有问题,我突出显示它并使用“运行选择”。

这实际上是整个模块。没有其他事情正在做。

代码:

 function MoveTheFolder($VariableName){

if ( -not (Test-Path "D:\FolderName02") ) {
md "D:\FolderName02"}

cd -Path d:\
Move-Item -Path "D:\FolderName01\$VariableName" -Destination "D:\FolderName02" -Force

}

FolderName02 的创建没有问题。 $VariableName 被传递到模块中,并且根据断点分析和实际错误消息是正确的。原始路径是 DVD 驱动器(F: 上的 .iso 文件)。

给出的错误是
move-item: Access to the path '[D:\FolderName01\$VariableName]' is denied.

我可以使用 Windows 资源管理器手动 move 文件夹,因此它们似乎不会与打开的应用程序捆绑在一起。

最佳答案

PowerShell 2.0 您需要在复制之前创建目录。

在 PowerShell 3.0 中,您不需要创建,因为 Move-Item 或 Copy-Item 将为您创建。

至于获取文件。我们可以使用 Get-ChildItem带开关-Recurse ,因为它会抓取包含子文件夹的第一个目录中的所有文件。获取文件和文件夹后,我们将其通过管道传送到 Move-Item带有选项 -Force .请注意,Move-Item 会将文件 move 到新目录。如果这是您想要的,那么我们需要使用 Copy-Item .我还添加了 -Verbose开关进行调试。让我们知道哪些文件不起作用。

Function MoveTheFolder($VariableName){
if ( -not (Test-Path "D:\FolderName02") ) {New-Item "D:\FolderName02\$VariableName" -Type Directory}
cd D:\ #You do not need this, but its ok.
Get-ChildItem -Path "D:\FolderName01\$VariableName\*" -Recurse | Move-Item -Destination "D:\FolderName02\$VariableName" -Force -Verbose
Get-ChildItem -Path "D:\FolderName01\$VariableName\*" -Recurse | Copy-Item -Destination "D:\FolderName02\$VariableName" -Force -Verbose
}

让我知道这个是否奏效。

关于Powershell move 项目访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42915049/

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