回答編集履歴
2
ミスの修正
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
コメントを受け手の追記
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文字を超えないかチェック要。
|