powershellでサブフォルダ内のファイル名を一括して変更したい
サブフォルダ内も含めて、指定したフォルダ内のファイル名の先頭に一定の文字列を付け加えたいと思っています。
発生している問題・エラーメッセージ
インターネット上の記事等を参考にして、ファイル名を一括して変更するコードを作成しました。 "「文字列」_数字8桁(最終更新日付)_従前のファイル名"といった形に編集するのが目的です。 カレントディレクトリ上のファイル名を一括で編集することには成功しましたが、 サブフォルダ内のファイルまで含めて変えようとするとうまくいきません。 知恵をお借りできますでしょうか。
該当のソースコード
PowerShell
1Get-ChildItem -Path . -File -Recurse |ForEach-Object{ 2$LastTime='「A」_'+($_.LastWriteTime).ToString("yyyyMMdd") 3[string]$newName=$LastTime+'_'+$_.Name 4Rename-Item $_ -NewName $newName 5}
試したこと
検索の結果ファイルのフルパスを利用するとサブフォルダ内も編集できるとあるので、
下記に記すコードの$.Nameの部分を$.FullNameに変える等してみましたが、
以下のようなエラーが帰ってきます。
Rename-Item : 指定された対象がパスまたはデバイス名を表しているため、その対象の名前を変更できません。
発生場所 行:4 文字:1
- Rename-Item $_.FullName -NewName $newName
- CategoryInfo : InvalidArgument: (:) [Rename-Item]、PSArgumentException
- FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand
補足情報(FW/ツールのバージョンなど)
windows10
64ビット版

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/19 05:40