私はPowerShellの初心者ですので、間違った用語についてはお詫び申し上げます。私はSEを見てきましたが、再帰的にディレクトリ構造に降下する方法を知っていますが、私が見つけることができるすべての作業例はGet-ChildItem
の出力をパイプしているようですが、前にファイルを処理する方法を理解できませんループが反復します。 C:\Users\Donglecow\myPictures\
:私は再帰的ディレクトリのループ方法、ファイル名の一致とファイルの操作
- がディレクトリで私のスクリプトを提供やろうとしている何
。
- 定義されたディレクトリ内のすべてのディレクトリを再帰的にループします(広範なファイル構造を持っています)。
- 、EGをフィルタ
thumbnail*.jpg
に一致するすべてのファイルを検索します。thumbnail_001.jpg
- ピクセル単位でその画像の大きさを確認し、どのようなコマンドラインに
をそれらをプリントアウトしBACKUP-thumbnail*.jpg
param (
[string]$dir = $pwd
)
write-output "Working from $($dir)"
$foundJpg = get-childitem -Recurse -Filter thumbnail*.jpg $dir
foreach($file in $foundJpg) {
write-output "Found $($file)"
#Rename to Backup...
#Check image dimensions...
#Do other stuff...
}
この作品、これまで持って、正しいファイルNAを出力しました私はファイルの名前を変更しようとするとエラーになります。
Get-ChildItem -Recurse -Filter *.mp3 | Rename-Item –NewName { $_.name –replace 'xyz','abc' }
:私はthis質問に答えに示すようにパイプ出力をコマンドから適応しようとしましたので、私はこれを控除してきました
Rename-Item -NewName { $_.Name.replace("thumbnail", "SAFE-thumbnail.jpg") }
Rename-Item : Cannot evaluate parameter 'NewName' because its argument is specified as a script block and there is no
input. A script block cannot be evaluated without input.
At C:\Users\Donglecow\myPictures\med.ps1:9 char:23
+ ... -Item -NewName { $_.Name.replace("thumbnail", "SAFE-thumbnail.jpg") }
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : MetadataError: (:) [Rename-Item], ParameterBindingException
+ FullyQualifiedErrorId : ScriptBlockArgumentNoInput,Microsoft.PowerShell.Commands.RenameItemCommand
は、おそらくです私は私のループのために私はさらに私が見つける各ファイルと対話することができる別の構造を使用しているのに対し、参考のため
私の環境
、私のファイル構造のスニペットは以下の通りです。
C:\Users\Donglecow\myPictures\
1\001\thumbnail_001.jpg
1\002\thumbnail_001.jpg
1\003\thumbnail_001.jpg
2\001\thumbnail_001.jpg
etc...
ここで私は間違っていますか?
ああ、そのような簡単な解決策です。ありがとう!私はそれがPoweshellでパイプラインがどのように機能しているかはわかりませんでした。 Linuxから来て、私はそれが両方のプラットフォームで同じように働いていると考えました。 – Donglecow