質問編集履歴

2

校正

2020/04/27 08:17

投稿

N-B-I
N-B-I

スコア12

test CHANGED
File without changes
test CHANGED
@@ -78,6 +78,10 @@
78
78
 
79
79
 
80
80
 
81
- 私的メモ、ワイルドカードの2重利用は許されなかった
81
+ ---
82
82
 
83
+ 私的メモ、ダブルクォーテーションで括ったPATHを引数とした場合とワイルドカード
84
+
85
+ ワイルドカードの2重利用は許されなかった
86
+
83
- ![ダブルクォーテーションで括ったPATHを引数とした場合とワイルドカード](0bdaff7abf9c85051b4e9140ad75b36f.png)
87
+ ![](0bdaff7abf9c85051b4e9140ad75b36f.png)

1

解決報告

2020/04/27 08:17

投稿

N-B-I
N-B-I

スコア12

test CHANGED
File without changes
test CHANGED
@@ -1,42 +1,46 @@
1
1
  [入門講義【第15章】 いろんなフォルダからファイルを集める](https://jj-blues.com/cms/kogi15/)
2
2
 
3
- 節:ファイルを集めるバッチファイルを作る より
3
+ 節:~~ファイルを集めるバッチファイルを作る~~複数のファイルを集める より
4
4
 
5
- ```bat
5
+ > ```bat
6
6
 
7
- @echo off
7
+ > @echo off
8
8
 
9
-
9
+ >
10
10
 
11
- dir /b /s メモ_1.txt > list.txt
11
+ > dir /b /s メモ_*.txt > list.txt
12
12
 
13
-
13
+ >
14
14
 
15
- for /f %%a in (list.txt) do (
15
+ > for /f %%a in (list.txt) do (
16
16
 
17
- copy "%%a" .\collection\
17
+ > copy "%%a" .\collection\
18
18
 
19
- )
19
+ > )
20
20
 
21
21
  ```
22
22
 
23
+
24
+
23
25
  ---
26
+
27
+
24
28
 
25
29
  節:複数のファイルを集める より
26
30
 
27
- ```bat
31
+ > ```bat
28
32
 
29
- @echo off
33
+ > @echo off
30
34
 
31
-
35
+ >
32
36
 
33
- for /f %%A in ('dir /b /s メモ_*.txt') do (
37
+ > for /f %%A in ('dir /b /s メモ_*.txt') do (
34
38
 
35
- copy "%%A" ./collection/
39
+ > copy "%%A" ./collection/
36
40
 
37
- )
41
+ > )
38
42
 
39
- ```
43
+ > ```
40
44
 
41
45
  > 「for」コマンドの「in( )」の括弧内に直接「dir」コマンドを書いた形です。このときdir文をシングルクォーテーション「’」で囲むのを忘れないようにしましょう。(**※ダブルクォーテーション「”」ではエラーになります。**)
42
46
 
@@ -50,8 +54,30 @@
50
54
 
51
55
  0. 何故一例目では不要だったシングルクォーテーションがfor文では必要なのですか?
52
56
 
53
- ()で括られているにも関わらず別のコマンドが行頭にあると別のコマンド以下が一括りであるとみなされないのですか?
57
+ ()で括られているにも関わらず別のコマンドが行頭にあると~~別の~~**dir**コマンド以下が一括りであるとみなされないのですか?
54
58
 
55
59
  0. スペースを含むものを括るならダブルクォーテーション、というざっくりした理解ですが、
56
60
 
57
61
  この場合何故シングルクォーテーションなのですか?
62
+
63
+
64
+
65
+ ### 解決後記、ご回答ありがとうございます
66
+
67
+ まとめ
68
+
69
+ 一般に、スペースを含む文字列をコマンドの1つの引数として使う→ダブルクォーテーション
70
+
71
+
72
+
73
+ `for /f`の構文では
74
+
75
+ - 0. ファイル名→クォーテーションなし
76
+
77
+ - 0. コマンドの返り値→シングルクォーテーション
78
+
79
+
80
+
81
+ 私的メモ、ワイルドカードの2重利用は許されなかった
82
+
83
+ ![ダブルクォーテーションで括ったPATHを引数とした場合とワイルドカード](0bdaff7abf9c85051b4e9140ad75b36f.png)