PATH以下のファイルに対する操作
path-childitemというCmdletを使う。
MSH> get-childitem C:\TEMP\ -Include *.cs -Recurse Directory: FileSystem::C:\TEMP\BLL\Properties Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 8 10 16:37 1637 AssemblyInfo.cs Directory: FileSystem::C:\TEMP\BLL Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 8 11 10:30 2044 AContext.cs -a--- 8 11 10:30 2619 CManager.cs -a--- 8 10 21:54 3580 Cryptograph.cs -a--- 8 10 14:25 531 Localization.cs -a--- 8 10 15:47 487 Logging.cs -a--- 8 10 20:24 574 Login.cs -a--- 8 10 14:41 438 PCounter.cs -a--- 8 10 15:47 916 RManager.cs -a--- 8 10 15:47 556 SConfiguration.cs -a--- 8 10 14:06 521 Usage.cs -a--- 8 10 14:34 394 UInfo.cs -a--- 8 10 14:42 402 UPreference.cs -a--- 8 10 14:31 381 Utility.cs
ちょっとこれじゃ使いにくいので、フルパスの文字列を出力するように整形する。
MSH> get-childitem C:\TEMP -Include *.cs -Recurse|foreach{combi ne-path $_.Directory $_.Name} C:\TEMP\BLL\Properties\AssemblyInfo.cs C:\TEMP\BLL\Properties\AssemblyInfo.cs C:\TEMP\BLL\ApplicationContext.cs C:\TEMP\BLL\CacheManager.cs C:\TEMP\BLL\Cryptograph.cs C:\TEMP\BLL\Localization.cs C:\TEMP\BLL\Logging.cs C:\TEMP\BLL\Login.cs C:\TEMP\BLL\PerformanceCounter.cs C:\TEMP\BLL\RoleManager.cs C:\TEMP\BLL\SystemConfiguration.cs C:\TEMP\BLL\Usage.cs C:\TEMP\BLL\UserInfo.cs C:\TEMP\BLL\UserPreference.cs C:\TEMP\BLL\Utility.cs MSH>
コマンドの実行結果が、どんなプロパティを持ったオブジェクトなのか見たい、という時は、format-listというCmdletを使うと見やすく整形してくれる。
MSH> $a=get-childitem C:\TEMP -Include *.cs -Recurse MSH> $a[0]|format-list Directory: FileSystem::C:\TEMP\BLL\Properties Name : AssemblyInfo.cs Length : 1637 CreationTime : 2005/08/10 11:34:37 LastWriteTime : 2005/08/10 16:37:08 LastAccessTime : 2005/08/11 10:30:23 VersionInfo :
で、パイプラインで必要なプロパティだけに間引きたい時には、select-objectを使う。
MSH> get-childitem C:\TEMP -Include *.cs -Recurse|select-object Name Name ---- AssemblyInfo.cs AContext.cs CManager.cs Cryptograph.cs Localization.cs Logging.cs Login.cs PCounter.cs RManager.cs SConfiguration.cs Usage.cs UInfo.cs UPreference.cs Utility.cs