ラベル PowerShell の投稿を表示しています。 すべての投稿を表示
ラベル PowerShell の投稿を表示しています。 すべての投稿を表示

2015年4月2日木曜日

[PowerShell]ディレクトリ一覧を取得し、ディレクトリに対して作業をする

$directories = @(Get-ChildItem | Where-Object {$_.Attributes -eq "Directory"})
Write-Debug "$directories"
foreach ($d in $directories) {
    convertFiles($d)
    compressZip($d)
}
CmdletDescription
Where-Objectオブジェクトの配列をフィルタにかけ、条件に一致するオブジェクトだけを出力する
Get-ChildItem (lsで取得した項目) で取得した項目から Attributes が Directory のものだけを抽出している
Get-ChildItem | Where-Object {$_.Attributes -eq "Directory"}

[PowerShell]7-zipを使ってzip圧縮する

###################################
# ZIP 圧縮
###################################
function compressZip([string] $directory)
{
 Set-Alias sz "C:\Program Files\Utility\7-Zip\7z.exe"

 $output = $directory + ".zip"
 sz a $output $directory
}
CmdletDescription
Set-Aliasエイリアスを作成する

[PowerShell]指定ディレクトリ内のjpgファイルにconvertコマンドを実行する

##########################################################
# 指定ディレクトリ内の jpg ファイルに対しサイズ変換をする
##########################################################
function convertFiles([string] $directory)
{
 Set-Location $directory

 Write-Debug "Search jpg files in $directory"
 $files = @(Get-ChildItem .\*.* -Include *.jpg -Name)
 Write-Debug "$files"
 foreach ($f in $files) {
  Write-Debug "convert.exe $f -strip -density 300x300 -units PixelsPerInch -geometry 50% $f"
  convert.exe $f -strip -density 300x300 -units PixelsPerInch -geometry 50% $f
 }

 Set-Location ..
}
CmdletDescription
Set-Location作業場所を指定する。cdと同等
Write-Debugデバッグメッセージをコンソールに出力する
Get-ChildItem指定された場所から項目および子項目を取得する。lsと同等
-Include: 指定された項目だけ取得する
-Name: 指定された場所にある項目の名前だけを取得します