回答編集履歴

2

ミスの修正

2018/02/08 06:25

投稿

otn
otn

スコア84555

test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  set DIRS=
32
32
 
33
- for /f "delims=" %F in ('dir /s/b 除外.txt') do set DIRS=!DIRS! "%~dpF"
33
+ for /f "delims=" %%F in ('dir /s/b 除外.txt') do set DIRS=!DIRS! "%%~dpF"
34
34
 
35
35
  robocopy ~~~ /xd %DIRS%
36
36
 

1

コメントを受け手の追記

2018/02/08 06:25

投稿

otn
otn

スコア84555

test CHANGED
@@ -11,3 +11,31 @@
11
11
  で、「除外.txt」の親ディレクトリ名の一覧が得られますので、それを使って`/XD`を書いてください。
12
12
 
13
13
  そこも自動化する必要がありますか?
14
+
15
+
16
+
17
+ #追記
18
+
19
+ > 自動で適用する方法についても教えて頂けますでしょうか。
20
+
21
+
22
+
23
+ バッチファイルにして、
24
+
25
+ ```DOS
26
+
27
+ setlocal enabledelayedexpansion
28
+
29
+ cd C:\Users\Desktop\IN1
30
+
31
+ set DIRS=
32
+
33
+ for /f "delims=" %F in ('dir /s/b 除外.txt') do set DIRS=!DIRS! "%~dpF"
34
+
35
+ robocopy ~~~ /xd %DIRS%
36
+
37
+ ```
38
+
39
+ コマンドラインの最大長は約8000文字らしいので、対象がたくさんあり過ぎる場合は注意ください。
40
+
41
+ 長さの見当が付かない場合は、最初の方法で一度ファイルに書き出して他のオプションと合わせて8000文字を超えないかチェック要。