• 追加された行はこの色です。
  • 削除された行はこの色です。
* find [#j5a32b46]

** コマンドレットgci [#k8763e33]
 gci -Recurse -Filter "*.txt"                                                             # 1
 gci -Recurse | where { $_.LastWriteTime -gt "2013-02-01" }                               # 2
 gci -Recurse | where { $_.CreationTime -gt (Get-Date).AddDays(-3) } | Select-Object name # 3
- #1 ファイル名の末尾が.txtのファイル
- #2 2/1以降のファイル
- #3 3日前までに作られたファイルのファイル名のみ
** ファイル検索 [#b382e162]
 find . -name "*.txt"                  # Bash
 gci -r "*.txt" | ft -a FullName,Mode  # PowerShell
gci(dir)コマンドレットの-Recurseオプションを使う。

** find -exec オプション [#u6cf4bd8]
*** PSコマンドレット [#d1763e24]
 find . -exec rm {}
*** より複雑な絞込み検索をする場合 [#dfc6b441]
 dir -r | where { $_.Name -Like "*.txt" -and $_.LastWriteTime -gt "2013-07-01" } | ft -a FullName
where-objectを使う。

 gci -R | rm
rmのようなPSコマンドレットはパイプをつなげればその通りに実行される。なお、rm -whatifオプションを使うと、何が削除されるのが確認出来る。
** find -execオプションによるコマンドの実行 [#u6cf4bd8]
*** PSコマンドレットを実行する場合 [#u2ea53e7]
 find . -name "*.txt" -exec rm {} \;  # Bash
 dir -r "*.txt" | del                 # PowerShell 

- delのようなPSコマンドレットはパイプをつなげればその通りに実行される。
- なお、"del -whatif"のようにすると何が削除されるのが確認出来る。-whatifオプションは多くのPSコマンドレットで実装されている。

*** 任意のコマンド [#v5ac006c]
 find . -excc grep "ABC {} 
*** 非PSコマンドレットを実行する場合 [#v5ac006c]
 find . -excc grep "ABC {}                  # Bash
 dir -r | % { grep.exe "ABC" $_.fullname }  # PowerShell
- grep.exeのようなPSコマンドレットではないコマンドを実行する場合は、foreach(%)を使う。
- なお、PowerShellでgrepする場合は通常はSelect-Stringコマンドレットを使う。

 gci -R | % { grep "ABC" $_.fullname }
grepのようなPSコマンドレットではない、任意のコマンドレットを実行する場合は、foreach(%)を使う。



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS