私はpowershellの初心者ですが、仕事中のプロジェクトに必要なものをいくつか見つけました。テスト場所に関連するフォルダにテスト結果ファイル (PDF、XLS、TXT など) があります。ほとんどのフォルダーには、ファイルを含むサブフォルダーがあります。上司は、ファイル名の末尾にテストの日付を追加する必要があることを義務付けています (test_results.pdf -> test_results - 2014-05-06.pdf)。
私のコードは作成日を取得して追加しますが、ソースフォルダー内のフォルダーでのみ機能し、フォルダーの作成日も追加します。すべてのファイルが正しい場所に配置されるのであれば、フォルダー名の日付は気にしません。ソース サブフォルダー内のファイルは新しいサブフォルダーに書き込まれますが、作成日は追加されません。
どんな助けでも大歓迎です。これが私のコードです:
$SourceDir= 'C:\modem\'
$targetDir = 'C:\test2\'
set-location -path $sourceDir
$files = get-childitem -recurse
foreach ($file in $files)
{
[string]$strippedFileName =[io.path]::GetFileNameWithoutExtension($file);
[string]$extension = [io.Path]::GetExtension($file);
[string]$crtime=$file.CreationTime.toString(' - yyyy-MM-dd');
[string]$sourceFilePath = $file.DirectoryName;
[string]$DestinationFile = $targetDir + $sourcefilepath.trimstart($sourceDir) + "\" + $strippedFileName +$crtime + $extension;
Copy-Item $file.Fullname -Destination $DestinationFile -recurse -Force
}
ありがとう、
トム