1
フォルダを別の場所にコピーした後に問題が発生しましたが、ディレクトリ内のフォルダの名前を変更して ".deploy"を最後から削除する必要がありますが、以下のエラーが表示されます。私はPowerShellの管理者権限についてはGoogleで検索しましたが、私のシナリオでは「キャッチオール」を見つけることができませんでした。ここでコピー後にフォルダの名前を変更
Get-Content : Access to the path 'C:\OldUserBackup\a.deploy' is denied. At C:\PSScripts\DesktopSwap\TestMergeDir.ps1:28 char:14 + (Get-Content $file.PSPath) | + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (C:\OldUserBackup\a.deploy:String) [Get-Content], UnauthorizedAccessException + FullyQualifiedErrorId : GetContentReaderUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetContentCommand
は私が持っているものです。
$UserName = [Environment]::UserName
$CurrUser = [Environment]::UserName + '.deploy'
$OldUserDir = 'C:\OldUserBackup'
$CurrDate = Get-Date -format G
$PathExist = Test-Path $OldUserDir
if ($PathExist -eq $true) {
#Copy Desktop, Downloads, Favorites, Documents, Music, Pictures, Videos
Copy-Item -Path $OldUserDir -Destination C:\Users\$UserName\Desktop\CopyTest -Recurse -Force
$configFiles = Get-ChildItem $OldUserDir *.deploy -rec
foreach ($file in $configFiles) {
(Get-Content $file.PSPath) |
Foreach-Object { $_ -replace ".deploy", "" } |
Set-Content $file.PSPath
}
}
無駄な使用を'ForEach-Object'です。 'Rename-Item'はパイプラインから読み込むことができるので、' Get-ChildItem'の出力に直接フィードすることができます。 –
@AnsgarWiechersしかし、あなたは '.deploy'を置き換えるために古い名前にどうやってアクセスしますか? –
'... |名前の変更 - アイテム-NewName {$ _。名前 - 置き換え '\ .deploy $'} '(中括弧に注意してください)。 –