PowerShellによるファイル管理


3

だから、私は面白い問題に遭遇しました。

PowerShellスクリプトを作成して、フォルダー "A"のフォルダー "B"と同じファイル名を確認します。フォルダ「A」に見つかった場合は、フォルダ「C」に移動されます。しかし、フォルダ "A"内に複数のファイルがある場合は、それらをフォルダ "C"に移動したときに名前を変更する必要があります。

$folderA = 'S:\Folder A\' # Folder to remove cross-folder duplicates from
$folderB = 'S:\Folder B\' # Folder to keep the last remaining copies in
Get-ChildItem $folderB | ForEach-Object {
    $pathInA = $folderA + $_.Name
    If (Test-Path $pathInA) {Move-Item $pathInA -Destination 'S:\Folder C\'}
}

これは検索や移動には非常に役立ちますが、名前の変更はそれほど多くありません。私へのおすすめはありますか?

編集:すみません、私は指定する必要があります。最も便利な名前の変更方法は、xy.txt>のいずれかです。 xy_1.txt ....または.... xy.txt> xy(1).txt

そして、それらの名前を変更する目的は、作業中のマシンの受領用のデジタル署名付きのPDFを作成するファイル構造を作成することです(フォルダーA)。作業が完了すると技術者による署名が入り、それが行われると別のフォルダ(フォルダB)に保存されます。そして最終的には全く別の場所にある顧客に拾われます(フォルダD)。これは別の署名であり、そのフォルダに保存されています。フォルダDに到達すると、他のすべてのコピーには署名がすべて付いていないため無駄になり、残りのコピーになります。私は本当にそれが理にかなっていることを願っています、そして、そうでなければ、私に知らせてください。


ファイルの名前をどのように変更しますか?どんな論理?
SimonS

すみません、私は指定するべきでした。最も便利な方法はxy.txt>のどちらかでしょう。 xy_1.txt ....または.... xy.txt> xy(1).txt
AeroEngi

回答:


1

どのようにファイルの名前を変更したいのか、またはどのような目的で使用したのかについては説明していません。 それでも、これでうまくいくでしょう。今はFilenameに数字を追加するだけです。そう xy.txt になります xy1.txt 新しいフォルダなどに

$i = 1
$FolderB = gci "S:\Folder B" | select -expand Name
$FolderA = gci "S:\Folder A" | ? { $_.Name -in $FolderB } | % {  
    Move-Item $_.FullName "S:\Folder C" -PassThru | 
    Rename-Item -NewName ($_.BaseName + $i + $_.Extension)
    $i++
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.