(本記事はPowerShell入門記事としてコチラにもまとめています。)
linuxでやるとfind -name file_4.*、というような一覧の取得を、PowerShellでもやってみます。
まずは実験用フォルダの作成から。
PS C:\Users\takk\aaa> 1..6 | %{$n=1}{$r=random;$dir=$r -replace("(..)","$&\\");mkdir $dir | out-null;1..4 | %{echo $_" "$r >> $dir/file_$n.txt};$n++}
このようにフォルダとファイルができました。
PS C:\Users\takk\aaa> ls -name -re 12 14 20 57 86 12\74 12\74\06 12\74\06\63 12\74\06\63\23 12\74\06\63\23\file_1.txt 14\53 14\92 14\53\23 14\53\23\53 14\53\23\53\43 14\53\23\53\43\file_2.txt 14\92\16 14\92\16\14 14\92\16\14\68 14\92\16\14\68\file_3.txt 20\20 20\20\97 20\20\97\04 20\20\97\04\40 20\20\97\04\40\file_5.txt 57\93 57\93\43 57\93\43\76 57\93\43\76\7 57\93\43\76\7\file_6.txt 86\03 86\03\02 86\03\02\65 86\03\02\65\2 86\03\02\65\2\file_4.txt PS C:\Users\takk\aaa>
file_1.txtとfile_2.txt、file_4*のパスを取得します。
-includeオプションを指定して、,(カンマ)で区切ればよいです。
-includeは-iで省略できます。
PS C:\Users\takk\aaa> ls -name -re -i file_1.txt,file_2.txt,file_4.* 12\74\06\63\23\file_1.txt 14\53\23\53\43\file_2.txt 86\03\02\65\2\file_4.txt PS C:\Users\takk\aaa>
フルパスの取得は、dirを使えばよいです。
PS C:\Users\takk\aaa> cmd /c "dir /b /s file_1.txt file_2.txt file_4.*" C:\Users\takk\aaa\12\74\06\63\23\file_1.txt C:\Users\takk\aaa\14\53\23\53\43\file_2.txt C:\Users\takk\aaa\86\03\02\65\2\file_4.txt PS C:\Users\takk\aaa>
コメント