teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

ミスの修正

2018/02/08 06:25

投稿

otn
otn

スコア86349

answer CHANGED
@@ -14,7 +14,7 @@
14
14
  setlocal enabledelayedexpansion
15
15
  cd C:\Users\Desktop\IN1
16
16
  set DIRS=
17
- for /f "delims=" %F in ('dir /s/b 除外.txt') do set DIRS=!DIRS! "%~dpF"
17
+ for /f "delims=" %%F in ('dir /s/b 除外.txt') do set DIRS=!DIRS! "%%~dpF"
18
18
  robocopy ~~~ /xd %DIRS%
19
19
  ```
20
20
  コマンドラインの最大長は約8000文字らしいので、対象がたくさんあり過ぎる場合は注意ください。

1

コメントを受け手の追記

2018/02/08 06:25

投稿

otn
otn

スコア86349

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