問題タブ [rename-item-cmdlet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
49 参照

powershell - ファイルが文字数制限に達するまで、PowerShell Rename-Item がループしている

文字通り何千ものフォルダーの名前を変更する必要があり、古い名前の前に「古い」を追加するスクリプトを使用したいと考えています。

私はこのスクリプトを試しました

メインフォルダーが台無しにならないようにいくつかの小さなテストフォルダーで試してみても機能しますが、残念ながらメインフォルダーでは機能していません。私のメインフォルダーでは、このコマンドは文字数制限に達して停止するまでループします。

次のようになります。

オンラインでもこれを見つけましたが、同じ結果が得られます

それはバグですか、それとも私はただ愚かですか?

0 投票する
2 に答える
561 参照

powershell - 「Rename-Item」は新しい名前でコピーを作成します

特定のフォルダーをバックアップするスクリプトを作成し、HKLM...\ProfileLists の下のターゲット ユーザーの GUID キーの名前を変更しようとしていますが、rename-item コマンドはキーのコピーを作成し、名前が追加された新しいキーを作成します。アクセス

-force で試し、名前の変更の代わりに move-item で試しましたが、まったく同じ結果が得られます。元のキーとまったく同じですが、名前が追加された新しいキーです。

期待される結果は、レジストリ内の GUID キーの名前のみを変更することです。実際の結果は、新しい複製に正しい名前が追加された複製キーです。

Rename-Item : 指定されたパスにレジストリ キーが存在しません。行:9 文字:5 + Rename-Item $FULLPATH -NewName "$SSID.bak" -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (HKEY_LOCAL_MACH...\folderredirect:String) [Rename-Item], ArgumentException + FullyQualifiedErrorId : System. ArgumentException、Microsoft.PowerShell.Commands.RenameItemCommand

Rename-Item : オブジェクト参照がオブジェクトのインスタンスに設定されていません。行:9 文字:5 + Rename-Item $FULLPATH -NewName "$SSID.bak" -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Rename-Item], NullReferenceException + FullyQualifiedErrorId : System.NullReferenceException,Microsoft.PowerShell.Commands .RenameItem コマンド

キーは存在し、証明として同じコマンドを再度実行できます (テストパスのため)。

詳細な出力は、そのコピーを確認します