Powershell 尝试重命名子目录中的文件和文件夹时,权限被拒绝

Powershell 尝试重命名子目录中的文件和文件夹时,权限被拒绝,powershell,Powershell,我不熟悉powershell,但认为它可能是重命名目录中所有文件和文件夹(其中包含字符串“UKLocal”)并将其更改为“UKOutbound”的良好起点 我当前的代码只是抛出PermissionDenied和GetContentReaderUnauthorizedAccessError错误 $csprojFiles = Get-ChildItem . *. -rec foreach ($file in $csprojFiles) { (Get-Content $file.PSPa

我不熟悉powershell,但认为它可能是重命名目录中所有文件和文件夹(其中包含字符串“UKLocal”)并将其更改为“UKOutbound”的良好起点

我当前的代码只是抛出PermissionDenied和GetContentReaderUnauthorizedAccessError错误

$csprojFiles = Get-ChildItem . *. -rec
 foreach ($file in $csprojFiles)
 {
     (Get-Content $file.PSPath) |
     Foreach-Object { $_ -replace "UKLocal", "UKOutbound" } |
     Set-Content $file.PSPath
 }

如果我读对了,那么您正在执行
getchilditem-path-过滤器*
。如果是,那么-filter*的用途是什么?是不是让它只是文件?如果是这样,您可能希望使用-directory(如果使用PS3或更高版本)。关于您的错误,您可能没有在获取内容点读取/打开文件的权限。您是否拥有当前目录下所有文件的读取权限(这是get-childitem中所表示的内容)。您的代码不会重命名文件夹,因为get/Set内容只能处理基于文本的文件。如果试图使用筛选器排除文件夹,则筛选器应为
*.*
。如果您使用的是PS v3+,您可以使用
-File
参数,如下所示:
Get-ChildItem-File-Recurse | foreach{(Get-Content$\ FullName)。替换(“UKLocal”,“UKOutbound”)| Set-Content$\ FullName}
谢谢,我将尝试升级到P3。最好升级到PowerShell的版本,而不仅仅是使用Windows附带的版本。