回答編集履歴
2
Zuishin さんのコメントを元に表現変更
test
CHANGED
@@ -6,7 +6,17 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
+
(200106 : Zuishin さんのコメントを元に表現変更)
|
10
|
+
|
11
|
+
質問のエラーは、PowerShell の以下の二つの動作が原因となります。
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
---
|
16
|
+
|
17
|
+
|
18
|
+
|
9
|
-
PowerShell のコマンド(コマンドレット・関数・ネイティブコマンドなど)は、スペース` `を引数の区切りとして認識
|
19
|
+
一つ目は、PowerShell のコマンド(コマンドレット・関数・ネイティブコマンドなど)は、スペース` `を引数の区切りとして認識することです。
|
10
20
|
|
11
21
|
|
12
22
|
|
@@ -24,11 +34,43 @@
|
|
24
34
|
|
25
35
|
|
26
36
|
|
37
|
+
位置指定のパラメータを3個指定することになりますが、[`Test-Path`](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/test-path?view=powershell-6)には位置指定パラメータが`Path`の1個しか無いため`「Test-Path : 引数 '+' を受け入れる位置指定パラメーターが見つかりません。」`のエラーが発生します。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
---
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
二つ目は、PowerShell のコマンド(コマンドレット・関数・ネイティブコマンドなど)の後ろに入力した文字は、基本的に文字列として扱われることです(詳細は下記`about_Parsing`のリンク先参照)。
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
> [about_Parsing (日本語)](https://forsenergy.com/ja-jp/windowspowershellhelp/html/8c0cf6ee-9628-435f-824d-b36147574e19.htm)
|
50
|
+
|
51
|
+
> [about_Parsing - PowerShell | Microsoft Docs](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_parsing?view=powershell-6)
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
そのため、「一つ目」の内容を元に「`Test-Path $PATH+"¥*.csv"`」のようにスペース` `を抜いて記述しても、エラーこそ出ませんが意図したように動作しません。
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
`Test-Path $PATH+"¥*.csv"`としたときは、`+`が演算子ではなく、文字の一部と解釈されているためです。
|
60
|
+
|
61
|
+
|
62
|
+
|
27
63
|
使用しているエディタや設定によりますが、Windows PowerShell ISE では以下のように`+`が紫色で表示され、ただの文字列として認識されているのがわかります。
|
28
64
|
|
29
65
|
|
30
66
|
|
31
|
-
![
|
67
|
+
![イメージ説明](497b1ae6d8404807a12429a00c4981bb.png)
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
---
|
72
|
+
|
73
|
+
|
32
74
|
|
33
75
|
|
34
76
|
|
1
誤記修正
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
1. ひとまとめにしたい範囲を()で囲む (汎用的)
|
40
40
|
|
41
|
-
2.
|
41
|
+
2. 文字列内に変数埋め込みを使う (言語特有・やや注意が必要)
|
42
42
|
|
43
43
|
3. 一度文字列を別の変数に格納してから実行する(やや手間だが汎用的)
|
44
44
|
|