400個以上のサブフォルダーを含むディレクトリがあります。この各サブフォルダーには、毎日新しいファイルが表示されます。それぞれの新しいファイルは、昨日同じフォルダに現れたファイルと同じ名前を持っています。各フォルダーには、他のフォルダーとは異なる名前のファイルが含まれますが、同じフォルダー内の新しいファイルには常に同じ名前が付けられます。ファイルを毎日上書きしたくない。代わりに、Powershellに今日の日付をファイル名の後、拡張子の前に追加してもらいたいです。単一のサブフォルダーに対してそれを行う方法は知っていますが、400個以上のスクリプト(サブフォルダーごとに1つ)を作成したくありません。
これは、各単一フォルダに対して完全にジョブを実行するスクリプトです。
$fileToRename = "E:\Backup\ABLBackup\folder1\Project1.txt"
if (Test-Path $fileToRename)
{
$fileName = [system.io.path]::GetFileNameWithoutExtension($fileToRename)
$dateSuffix = get-date -Format 'yyyy_MM_dd'
$fileExtension = [system.io.path]::GetExtension($fileToRename)
$newFileName = '{0}_{1}{2}' -f $fileName, $dateSuffix, $fileExtension
Rename-Item -Path $fileToRename -NewName $newFileName
}
400以上のすべてのサブフォルダーを1つのスクリプトに含めることができるように、上記のスクリプトを変更する方法を知りたいです。同じコマンドを400回以上繰り返して1つのスクリプトとして保存できることは知っていますが、ユーザーに通知せずに新しいフォルダーを追加するため、実行できません。確かに、サブフォルダーに現れたすべての新しいファイルを自動的に取得する方法がなければなりません。
フォルダーの構造は次のようになります。
E:\ Backup \ ABLBackup \ folder1 \ Project1.txt
E:\ Backup \ ABLBackup \ folder2 \ Project2.txt
E:\ Backup \ ABLBackup \ folder3 \ Project3.txt
E:\ Backup \ ABLBackup \ folder4 \ Project4.txt
どんな助けも大歓迎です!