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>

One response to “PowerShell(\パスを/パスに置換)

  1. Thanks for very informative posts on life-is-command.com.

    I’d like to share with you a very special event this weekend about building a successful digital business.

    If you want more visitors to life-is-command.com or more leads and sales for your business, this event will be very helpful to you.

    For more info, you can check out this Facebook page:

    https://www.facebook.com/events/114398955869415/?active_tab=discussion

    Cheers

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA