質問編集履歴

1

書式の改善

2020/01/19 04:16

投稿

Sans
Sans

スコア14

test CHANGED
File without changes
test CHANGED
@@ -3,20 +3,6 @@
3
3
  言語:batファイル
4
4
 
5
5
  環境:Windows10 64bit
6
-
7
-
8
-
9
- 実現したいこと:
10
-
11
- - フォルダ名に空白を含むフォルダ配下で、forfilesを使ったxcopyを行いたい
12
-
13
- - xcopyのコピー先指定は「"""パス(スペース有)"""」とくくると成功した
14
-
15
- - xcopyの/XCLUDEオプション指定がうまくいかない
16
-
17
-
18
-
19
-
20
6
 
21
7
  フォルダ構成例:
22
8
 
@@ -24,7 +10,7 @@
24
10
 
25
11
  src フォルダ   ・・・コピー元フォルダ
26
12
 
27
- |- test.bat
13
+ |- test.bat   
28
14
 
29
15
  |- exclude.txt ・・・`bbb.csv`と書かれたファイル
30
16
 
@@ -32,9 +18,9 @@
32
18
 
33
19
  |- bbb.csv
34
20
 
35
- srcフォルダ    ・・・コピー元フォルダ(試験用。空白無)
21
+ srcフォルダ    ・・・コピー元フォルダ(試験用。スペース無)
36
22
 
37
- |- exclude.txt
23
+ |- exclude.txt ・・・`bbb.csv`と書かれたファイル(試験用。上記「src フォルダ」内と同一)
38
24
 
39
25
  dst フォルダ   ・・・コピー先フォルダ
40
26
 
@@ -42,76 +28,46 @@
42
28
 
43
29
 
44
30
 
31
+ 実現したいこと:
32
+
33
+ - フォルダ名に空白を含むフォルダ配下で、forfilesを使ってxcopyを行いたい
34
+
35
+ - xcopyには/EXCLUDEオプションを指定したい
36
+
37
+ - /XCLUDEオプション指定のパスにスペースを含むとエラーが出る
38
+
39
+ - なお、xcopyのコピー先指定は「"""パス"""」とくくるとスペースを含んでいても成功した
40
+
41
+
42
+
43
+
44
+
45
+
46
+
45
47
  ## 該当のソースコード・試したこと
46
48
 
47
49
 
48
50
 
49
- - 条件1から、xcopyの先は「"""パス"""」くくと空白を含んでいても動作します
51
+ - 以下該当コードでエラー
50
52
 
51
- - 条件2と3から、/EXCLUDEでは「"""パス"""」とくくるとエラーます
53
+ エラー: 無効引数たはオプションで - 'フォルダ\exclude.txt @file "C:\dst フォルダ" '
52
54
 
53
- - 条件4と5から、/EXCLUDEでは「"パス"」とくくるのが正解のようですが、空白を含むとエラーになります
55
+ ```
54
56
 
55
- - 条件6と7では、batファイのエスケープシーケンスで調べた記号を試していますがエラーとなっています
57
+ forfiles /p "C:\src フォルダ" /m *.csv /c "cmd /c xcopy /EXCLUDE:"C:\src フォルダ\exclude.txt" @file """C:\dst ダ""" "
58
+
59
+ ```
56
60
 
57
61
 
58
62
 
63
+ - EXCLUDEの指定先を検証用フォルダ(スペース無)とすると、エラーが起こらずコピーが実行される
64
+
59
65
  ```
60
66
 
61
- rem 条件1:/EXCLUDE指定無
67
+ forfiles /p "C:\src フォルダ" /m *.csv /c "cmd /c xcopy /EXCLUDE:"C:\srcフォルダ\exclude.txt" @file """C:\dst フォルダ""" "
62
68
 
63
- rem 結果→正常
69
+ ```
64
-
65
- forfiles /p "C:\src フォルダ" /m *.csv /c "cmd /c xcopy @file """C:\dst フォルダ""" "
66
70
 
67
71
 
68
72
 
69
- rem 条件2:/EXCLUDE指定有 & 「"""でパスくくる & パス空白有
73
+ - 「batファイル エスケープシーケンス」で検索しヒットした、^"」「\"」など試したがエラーとなった。
70
-
71
- rem 結果→「ファイルを読み取れません: "C:\src フォルダ\exclude.txt"」
72
-
73
- forfiles /p "C:\src フォルダ" /m *.csv /c "cmd /c xcopy /EXCLUDE:"""C:\src フォルダ\exclude.txt""" @file """C:\dst フォルダ""" "
74
-
75
-
76
-
77
- rem 条件3:/EXCLUDE指定有 & 「"""」でパスをくくる & パス空白無
78
-
79
- rem 結果→「ファイルを読み取れません: "C:\srcフォルダ\exclude.txt"」
80
-
81
- forfiles /p "C:\src フォルダ" /m *.csv /c "cmd /c xcopy /EXCLUDE:"""C:\srcフォルダ\exclude.txt""" @file """C:\dst フォルダ""" "
82
-
83
-
84
-
85
- rem 条件4:/EXCLUDE指定有 & 「"」でパスをくくる & パス空白有
86
-
87
- rem 結果→「エラー: 無効な引数またはオプションです - 'フォルダ\exclude.txt @file "C:\dst フォルダ" '。」
88
-
89
- forfiles /p "C:\src フォルダ" /m *.csv /c "cmd /c xcopy /EXCLUDE:"C:\src フォルダ\exclude.txt" @file """C:\dst フォルダ""" "
90
-
91
-
92
-
93
- rem 条件5:/EXCLUDE指定有 & 「"」でパスをくくる & パス空白無
94
-
95
- rem 結果→正常
96
-
97
- forfiles /p "C:\src フォルダ" /m *.csv /c "cmd /c xcopy /EXCLUDE:"C:\srcフォルダ\exclude.txt" @file """C:\dst フォルダ""" "
98
-
99
-
100
-
101
- rem 条件6:/EXCLUDE指定有 & 「^"」でパスをくくる & パス空白有
102
-
103
- rem 結果→「エラー: 無効な引数またはオプションです - 'フォルダ\exclude.txt @file "C:\dst フォルダ" '。」
104
-
105
- forfiles /p "C:\src フォルダ" /m *.csv /c "cmd /c xcopy /EXCLUDE:^"C:\src フォルダ\exclude.txt^" @file """C:\dst フォルダ""" "
106
-
107
-
108
-
109
- rem 条件7:/EXCLUDE指定有 & 「\"」でパスをくくる & パス空白有
110
-
111
- rem 結果→エラー:「ファイルを読み取れません: "C:\src フォルダ\exclude.txt"」
112
-
113
- forfiles /p "C:\src フォルダ" /m *.csv /c "cmd /c xcopy /EXCLUDE:\"C:\src フォルダ\exclude.txt\" @file """C:\dst フォルダ""" "
114
-
115
-
116
-
117
- ```