有馬総一郎のブログ

(彼氏の事情)

Powershellで角括弧、ブラケットが入った文字を扱う時は注意する

いつものようにpowershellで名前を変更しようとしたら、エラーになった。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
PS C:\Users\Arimasou16> Set-Location "C:\Users\Arimasou16\Pictures\お気に入り\doris"
PS C:\Users\Arimasou16\Pictures\お気に入り\doris> ls
    ディレクトリ: C:\Users\Arimasou16\Pictures\お気に入り\doris
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2014/02/07     23:23      41385 dorisnapshot_05.11_[2014.02.07_23.23.02].jpg
-a---        2014/02/07     23:20      23901 dorisnapshot_05.12_[2014.02.07_23.20.45].jpg
-a---        2014/02/07     23:23      53968 dorisnapshot_05.12_[2014.02.07_23.23.06].jpg
-a---        2014/02/07     23:20      21649 dorisnapshot_05.13_[2014.02.07_23.20.52].jpg
-a---        2014/02/07     23:20      47154 dorisnapshot_05.13_[2014.02.07_23.20.58].jpg
-a---        2014/02/07     23:21      20783 dorisnapshot_05.14_[2014.02.07_23.21.08].jpg
-a---        2014/02/07     23:21      35830 dorisnapshot_05.14_[2014.02.07_23.21.15].jpg
-a---        2014/02/07     23:21      17521 dorisnapshot_05.14_[2014.02.07_23.21.23].jpg
-a---        2014/02/07     23:21      41087 dorisnapshot_05.15_[2014.02.07_23.21.37].jpg
-a---        2014/02/07     23:21      37071 dorisnapshot_05.15_[2014.02.07_23.21.41].jpg
-a---        2014/02/07     23:21      43019 dorisnapshot_05.16_[2014.02.07_23.21.46].jpg
-a---        2014/02/07     23:21      31997 dorisnapshot_05.16_[2014.02.07_23.21.50].jpg
-a---        2014/02/07     23:21      29431 dorisnapshot_05.16_[2014.02.07_23.21.55].jpg
-a---        2014/02/07     23:21      25649 dorisnapshot_05.17_[2014.02.07_23.21.59].jpg
-a---        2014/02/07     23:22      42012 dorisnapshot_05.17_[2014.02.07_23.22.03].jpg
-a---        2014/02/07     23:22      43722 dorisnapshot_05.17_[2014.02.07_23.22.09].jpg
-a---        2014/02/07     23:22      47479 dorisnapshot_05.17_[2014.02.07_23.22.12].jpg
-a---        2014/02/07     23:22      35187 dorisnapshot_05.18_[2014.02.07_23.22.19].jpg
-a---        2014/02/07     23:22      52086 dorisnapshot_05.18_[2014.02.07_23.22.23].jpg
-a---        2014/02/07     23:22      28672 dorisnapshot_05.18_[2014.02.07_23.22.28].jpg
-a---        2014/02/07     23:22      20455 dorisnapshot_05.18_[2014.02.07_23.22.34].jpg
-a---        2014/02/07     23:22      31908 dorisnapshot_05.19_[2014.02.07_23.22.38].jpg
-a---        2014/02/07     23:22      29281 dorisnapshot_05.19_[2014.02.07_23.22.42].jpg
PS C:\Users\Arimasou16\Pictures\お気に入り\doris> Get-ChildItem *.jpg | ForEach-Object { Rename-Item -Path $_.FullName -NewName ("Doris_Yeh" + (++$index).toString("000") + $_.Extension)}
Rename-Item : 'C:\Users\Arimasou16\Pictures\お気に入り\doris\dorisnapshot_05.11_[2014.02.07_23.23.02].jpg' の項目は存在しないため、名前を変更できません。
発生場所 行:1 文字:40
+ Get-ChildItem *.jpg | ForEach-Object { Rename-Item -Path $_.FullName -NewName (" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Rename-Item]、PSInvalidOperationException
    + FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
・・・中略・・・
Rename-Item : 'C:\Users\Arimasou16\Pictures\お気に入り\doris\dorisnapshot_05.19_[2014.02.07_23.22.42].jpg' の項目は存在しないため、名前を変更できません。
発生場所 行:1 文字:40
+ Get-ChildItem *.jpg | ForEach-Object { Rename-Item -Path $_.FullName -NewName (" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Rename-Item]PSInvalidOperationException
    + FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand

角括弧・ブラケット[]があると、駄目みたいだ。角括弧はキャストする型を表すらしく、この場合パスがそのまま文字列で解釈されるように-LiteralPathを使う。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
PS C:\Users\Arimasou16\Pictures\お気に入り\doris> $index=0
PS C:\Users\Arimasou16\Pictures\お気に入り\doris> Get-ChildItem *.jpg | ForEach-Object { Rename-Item -LiteralPath $_.FullName -NewName ("Doris_Yeh" + (++$index).toString("000") + $_.Extension)}
PS C:\Users\Arimasou16\Pictures\お気に入り\doris> ls
    ディレクトリ: C:\Users\Arimasou16\Pictures\お気に入り\doris
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2014/02/07     23:23      41385 Doris_Yeh001.jpg
-a---        2014/02/07     23:20      23901 Doris_Yeh002.jpg
-a---        2014/02/07     23:23      53968 Doris_Yeh003.jpg
-a---        2014/02/07     23:20      21649 Doris_Yeh004.jpg
-a---        2014/02/07     23:20      47154 Doris_Yeh005.jpg
-a---        2014/02/07     23:21      20783 Doris_Yeh006.jpg
-a---        2014/02/07     23:21      35830 Doris_Yeh007.jpg
-a---        2014/02/07     23:21      17521 Doris_Yeh008.jpg
-a---        2014/02/07     23:21      41087 Doris_Yeh009.jpg
-a---        2014/02/07     23:21      37071 Doris_Yeh010.jpg
-a---        2014/02/07     23:21      43019 Doris_Yeh011.jpg
-a---        2014/02/07     23:21      31997 Doris_Yeh012.jpg
-a---        2014/02/07     23:21      29431 Doris_Yeh013.jpg
-a---        2014/02/07     23:21      25649 Doris_Yeh014.jpg
-a---        2014/02/07     23:22      42012 Doris_Yeh015.jpg
-a---        2014/02/07     23:22      43722 Doris_Yeh016.jpg
-a---        2014/02/07     23:22      47479 Doris_Yeh017.jpg
-a---        2014/02/07     23:22      35187 Doris_Yeh018.jpg
-a---        2014/02/07     23:22      52086 Doris_Yeh019.jpg
-a---        2014/02/07     23:22      28672 Doris_Yeh020.jpg
-a---        2014/02/07     23:22      20455 Doris_Yeh021.jpg
-a---        2014/02/07     23:22      31908 Doris_Yeh022.jpg
-a---        2014/02/07     23:22      29281 Doris_Yeh023.jpg

上手く行った。

Comments