(本記事はPowerShell入門記事としてコチラにもまとめています。)
「PowerShell(out-nullで出力を捨てる、再帰的ファイル一覧)」では、for文で繰り返してmkdirしましたが、実は多階層のディレクトリでも一回で作成することができます。
PS C:\Users\takk\aaa> ls PS C:\Users\takk\aaa> mkdir dir1/dir2/dir3 | out-null PS C:\Users\takk\aaa> ls -n -r dir1 dir1\dir2 dir1\dir2\dir3 PS C:\Users\takk\aaa>
では、このディレクトリパスの\を/に置換してみます。
PS C:\Users\takk\aaa> ls -n -r | %{$_.Replace("\","/")} dir1 dir1/dir2 dir1/dir2/dir3 PS C:\Users\takk\aaa>
正規表現を使う場合。
PS C:\Users\takk\aaa> ls -n -r | %{$_ -Replace("(dir.)","[$&]")} [dir1] [dir1]\[dir2] [dir1]\[dir2]\[dir3] PS C:\Users\takk\aaa>
ランダムに階層の深いディレクトリを作ってファイルを保存してみます。
PS C:\Users\takk\aaa> 1..5 | %{$r=get-random; $dir=$r -replace("(...)","$&\\");mkdir $dir | out-null;echo HELLO > $dir/f ile.txt} PS C:\Users\takk\aaa> ls -n -r 113 182 193 640 890 113\938 113\938\662 113\938\662\3 113\938\662\3\file.txt 182\911 182\911\275 182\911\275\1 182\911\275\1\file.txt 193\133 193\133\520 193\133\520\file.txt 640\446 640\446\641 640\446\641\file.txt 890\224 890\224\140 890\224\140\file.txt PS C:\Users\takk\aaa>
コメント