Копирование файла в определенные папки с помощью пакетного файла - PullRequest
0 голосов
/ 21 января 2019

У меня есть два файла PDF - .COMInterop and C# Notes - Notes 1 to 10.pdf и .COMInterop and C# Notes - Notes 11 to 20.pdf, которые хранятся в каталоге D:\Dropbox\Sample C# Notes

В папке Sample C# Notes также есть несколько подпапок, таких как 0001, 0002, 0003 и т. Д. До 0300.

Я пишу следующую команду (предоставляемую пользовательскими лотопингами SO) в пакетном файле, чтобы скопировать pdf из Sample C# Notes во все вложенные папки в нем (0001, 0002, 0003 ...)

for /D %%x in ("D:\Dropbox\Sample C# Notes\*") DO (
  COPY "D:\Dropbox\Sample C# Notes\.COMInterop and C# Notes - Notes 1 to 10.pdf" "%%x\"
)

Как мне изменить этот код, чтобы я мог скопировать:

.COMInterop and C# Notes - Notes 1 to 10.pdf в папки 0001 до 0100

и

.COMInterop and C# Notes - Notes 11 to 20.pdf в папки 0101 до 0300

1 Ответ

0 голосов
/ 21 января 2019

Попробуйте, пожалуйста:

@echo off
pushd "D:\Dropbox\Sample C# Notes\"
for /f %%x in ('dir /b /ad 0*') do (
    if %%x leq 0100 (
        COPY ".COMInterop and C# Notes - Notes 1 to 10.pdf" "%%x\"
    ) else (
        COPY ".COMInterop and C# Notes - Notes 11 to 20.pdf" "%%x\"
    )
)
popd
@echo on

Чтобы упростить жизнь, я не использовал полный путь к каталогу, вместо этого сначала изменил рабочий путь и скопировал файлы.
Кроме того, поскольку вы сказали, что есть только от 0001 до 0030 этих подпапок, поэтому я не проверял 0101 до 0300, просто поместил их в блок else.
Вы можете улучшить его на основе этих.

for /f использовал другую команду dir.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...