В настоящее время я пытаюсь получить небольшую пакетную работу, которая способна копировать файлы PDF и TXT из «нескольких папок» в одну папку, отсортированную по дате MM-YYYY.
У меня уже есть Некоторый код работает, но он все еще не закончен, я в настоящее время застрял в нескольких папках и добавил TXT.
set "source=c:\Program Files (x86)\Temp1"
set "target=c:\Temp2"
for %%i in (%source%\*.pdf) do @for /f "tokens=1,2,3 delims=/ " %%A in
("%%~ti") do (
if not exist "%target%\%%C\%%B" mkdir "%target%\%%C\%%B"
move "%%~fi" "%target%\%%C\%%B"
)
Это работает нормально (кроме пробела в названии, но я потрясающе буду найти проблему с именами файлов dos). Но мне также нужно искать в нескольких папках.
Как
set "source=c:\Program Files (x86)\Temp1"
set "source=c:\Program Files (x86)\Temp2"
set "source=c:\Program Files (x86)\Temp3"
set "target=c:\Temp2"
for %%i in (%source%*.pdf)+(%source%*.txt)
что-то в этом направлении, я просто пытался повторить код и обмениваться только с исходным кодом, но это делает не работает так, поэтому я буду придерживаться также с .txt.
Если у кого-то есть идея, я буду очень рад:)
Один из способов остаться с простым for для итерации файлов PDF - это перейти в исходную папку.
Итерировать несколько исходных папок в другом for: (Untested)
@Echo off
set "source=c:\Program Files (x86)"
set "target=c:\Temp2"
For %%S in (Temp1 Temp2 Temp3) do (
PushD "%source%\%%S"
for %%I in (*.pdf) do for /f "tokens=1,2,3 delims=/ " %%A in ("%%~tI") do (
if not exist "%target%\%%C\%%B" mkdir "%target%\%%C\%%B"
move "%%~fI" "%target%\%%C\%%B\"
)
PopD
)
спасибо за вашу идею, это выглядит спокойно, но не соответствует тому, что им нужно: (
Если я добавлю в «%% S in (Temp 1 Temp 2) do ... тогда он ищет 2 типа папок, возможно, также моя ошибка в примере :)
Мне также нужно проверить другие папки, кроме того, нужны только файлы программы, пользовательские документы и т. д. и кроме того, мне еще нужно было бы добавить файлы TXT, а также в PDF.
Спасибо за ваш хороший фрагмент кода. Я продолжу попытку найти решение:)