Доброе утро.
Итак, я часами пытался сколотить множество ответов на другие сообщения в свой собственный код, чтобы посмотреть, смогу ли я получить что-нибудь пригодное для использования. Нет- go. Я достаточно потерялся в этом соусе, и теперь должен попросить вас о помощи.
Фон: ОС: Windows 10 Я использую программу text2folders.exe для создания 20-30 новых папок на вторичном диске каждую ночь. В первую очередь, у меня есть базовый файл «aGallery-dl.bat», которым я заполняю каждую папку с помощью командного файла xcopy. Во-вторых, время от времени я обновляю исходный файл «aGallery-dl.bat», используя тот же xcopy, и это перезаписывает старый целевой файл, заполняя все папки новейшим «aGallery-dl.bat» ( нужно им это или нет). Все хорошо.
@echo off
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy /y /d ".\aGallery-dl.bat" "%%a\"
Недавно я решил, что хочу добавить по два новых файла в каждую папку, и расширил свой xcopy, включив их. Все хорошо.
@echo off
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy /y /d ".\aGallery-dl.bat" "%%a\"
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder.jpg" "%%a\"
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder2.jpg" "%%a\"
Folder.jpg большой красный X
Folder2.jpg большой желтый! mark
Когда я выбираю запустить «aGallery-dl.bat» в заданной папке (опять же, одной из сотен), он сначала удаляет Folder.jpg, а затем переименовывает Folder2.jpg в Folder.jpg . В результате красный X заменяется желтым! при просмотре папки в родительской папке проводника. Во-вторых, он вызывает «gallery-dl.exe». Я использую переход от красного к желтому, чтобы сообщить мне, что я хотя бы раз запускал "aGallery-dl.bat". Все хорошо.
rem @echo off
del .\Folder.jpg
ren .\Folder2.jpg Folder.jpg
FOR /F %%i IN ('cd') DO set FOLDER=%%~nxi
"C:\Program Files (x86)\gallery-dl\gallery-dl.exe" -d "U:\11Web\gallery-dl" --download-archive ".\aGDB.sqlite3" "https://www.deviantart.com/"%FOLDER%"/gallery/all"
del .\Folder.jpg
Если "aGallery-dl.bat" завершается успешно, он, наконец, удаляет Folder.jpg (в настоящее время желтый!), А теперь репрезентативное содержимое папки (обычно DeviantArt .jpg) ) видны.
Проблема: Когда мне нужно повторно запустить мою исходную команду xcopy для обновления «aGallery-dl.bat» во ВСЕХ ПАПКАХ, Folder.jpg и Folder2.jpg будут повторно скопированы во все папки, исключая возможность их однократного удаления через "aGallery-dl.bat". Я не хочу, чтобы go возвращался и повторно запускал "aGallery-dl.bat" периодически для 100 папок (опять же, только для тех, у которых aGallery-dl.bat запускался хотя бы один раз). Мне нужен какой-то тест, который, если «aGallery-dl.bat» уже присутствует в целевой папке, НЕ xcopy Folder.jpg и Folder2.jpg, также известный как неопределенный пример, ниже.
*********************************Some sort of test statement here!!!***********************
:aGallery-dlPresent
GOTO eof
:aGallery-dlNotPresent
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder.jpg" "%%a\"
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder2.jpg" "%%a\"
GOTO eof
:eof
Я нашел обнадеживающее заявление о проверке кандидата ниже (скопировано в его исходной форме из того, что / где я читал в другом сообщении), но ищу идеи / замены, так как У меня НЕТ ИДЕИ, как изменить / внедрить / реализовать ниже, чтобы работать с указанным выше.
If exist \\%DIR%\%Folder%\123456789.wav xcopy \\%DIR%\%Folder%\123456789.wav D:\%New Folder%\ /y
XCopy копирует файл и не перезаписывает предыдущий, если он существует (без запроса)
Примечание : Ниже приведено смутное приближение того, как все это должно выглядеть (за исключением правильного оператора -test -).
rem @echo off
*********************************Some sort of test statement here!!!***********************
:aGallery-dlPresent
GOTO eof
:aGallery-dlNotPresent
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder.jpg" "%%a\"
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy ".\Folder2.jpg" "%%a\"
GOTO eof
:eof
for /D %%a in ("U:\11Web\gallery-dl\deviantart\*.*") do xcopy /y /d ".\aGallery-dl.bat" "%%a\"