В папке назначения есть файлы с такими же именами что значит
← →
Badevlad ( 2009-10-16 18:56 ) [0]
При копировании Windows переименовывает файл, в случае если его имя совпадает с именем присутствующего в папке файла. К примеру, если в папке есть "Файл1.txt", и мы пытаемся скопировать в нее еще один с таким же именем, второй файл будет переименован в "Копия Файл1.txt". при очередном совпадении имя будет "Копия (2) Файл1.txt" и т. д.
Как получить шаблон, по которому Windows строит новое имя файла? Мне нужно самостоятельно генерировать его с учетом языка Windows, так что варианты с FOF_RENAMEONCOLLISION или забиванием констант не подходят.
← →DVM © ( 2009-10-16 19:29 ) [1]
в Shell32.dll есть строковой ресурс 4178, выглядит похоже: Копия ()
← →Игорь Шевченко © ( 2009-10-16 23:37 ) [2]
Windows не переименовывает файл во время копирования
← →Badevlad ( 2009-10-17 15:13 ) [3]
DVM, спасибо, но вряд ли я могу на это положиться. Нужна какая-нибудь системная функция или константа.
Игорь, что Вы имеете в виду?
← →Игорь Шевченко © ( 2009-10-17 16:49 ) [4]
> Игорь, что Вы имеете в виду?
Я имею в виду, что команда copy, системная функция CopyFile, проводник, если набрать в одном каталоге Copy, а в другом Paste не переименовывают файлы, если в каталоге назначения уже имеются файлы с такими же именами.
← →DVM © ( 2009-10-17 17:12 ) [5]
> DVM, спасибо, но вряд ли я могу на это положиться. Нужна
> какая-нибудь системная функция или константа.
Так я константу и привел. Функции нету, есть функция с пом которой можно достать эту строку из ресурса.
API для этой цели быть не может, ибо это функционал проводника и не обязан быть документирован. Проще взять ShFileOperation() она и скопирует с нужными именами все.
DVM © ( 2009-10-17 17:14 ) [6]
> Badevlad (17.10.09 15:13) [3]
Проще простого выяснить где лежит нужная строка в разных версия windows и подгружать оттуда по мере необходимости.
Eraser © ( 2009-10-17 19:01 ) [7]
> [3] Badevlad (17.10.09 15:13)
> Нужна какая-нибудь системная функция или константа.
при первом запуски проги создаешь во временной папке файл X, потом с пом. ShFileOperation копируешь файл "в самого себя" и пом. рег. выражений и FindFirst/Next узнаешь искомую строку.
Badevlad ( 2009-10-18 00:25 ) [8]
> Игорь Шевченко ©
> Я имею в виду, что команда copy, системная функция CopyFile,
> проводник, если набрать в одном каталоге Copy, а в другом Paste
> не переименовывают файлы, если в каталоге назначения уже имеются
> файлы с такими же именами.
Копирование и вставка через буфер в проводнике а так же использование ShFileOperation с флагом FOF_RENAMEONCOLLISION переименовывают.
> Eraser © (17.10.09 19:01) [7]
> при первом запуски проги создаешь во временной папке файл X,
> потом с пом. ShFileOperation копируешь файл "в самого себя"
> и пом. рег. выражений и FindFirst/Next узнаешь искомую строку.
Очень некрасивое решение, но единственное пока, которое может сработать. Есть, правда, нюанс: первая копия будет иметь имя "Копия Файла", а вторая — "Копия (2) Файла". Здесь могут быть свои нюансы для разных языков. В английском, например, будет "Copy of File" и "Copy (2) of File" соответственно.
Вот если бы шаблон переименования как-то более определенно получить.
← →Eraser © ( 2009-10-18 00:38 ) [9]
> [8] Badevlad (18.10.09 00:25)
> Вот если бы шаблон переименования как-то более определенно
> получить.
с пом. регулярных выражений, как я и описал выше. для первой копии можно просто писать как есть.
DVM © ( 2009-10-18 00:54 ) [10]
> Очень некрасивое решение, но единственное пока, которое
> может сработать
Единственно верное решение - взять оттуда же откуда берет проводник. Если окажется что номер ресурса в разных версиях Win разный - значит для разных версий брать свои номера.
Eraser © ( 2009-10-18 02:07 ) [11]
> [10] DVM © (18.10.09 00:54)
> Если окажется что номер ресурса в разных версиях Win разный
может оказаться, что номер ресурса разный в разных билдах эксплорера.
Германн © ( 2009-10-18 02:31 ) [12]
> Badevlad (18.10.09 00:25) [8]
>
> > Игорь Шевченко ©
> > Я имею в виду, что команда copy, системная функция CopyFile,
>
> > проводник, если набрать в одном каталоге Copy, а в другом
> Paste
> > не переименовывают файлы, если в каталоге назначения уже
> имеются
> > файлы с такими же именами.
>
> Копирование и вставка через буфер в проводнике а так же
> использование ShFileOperation с флагом FOF_RENAMEONCOLLISION
> переименовывают.
Имхо.
Если API Shell32 не предоставляет такой возможности, то никаких "нормальных" путей нет.
Badevlad ( 2009-10-18 11:21 ) [13]
> Имхо.
> Если API Shell32 не предоставляет такой возможности, то
> никаких "нормальных" путей нет.
Логично. Я и ищу такую фкункциональность API. Может кто-то знает что-то, чего я не знаю. Может есть какие-то слабодокументированные функции или их параметры?
← →DVM © ( 2009-10-18 14:47 ) [14]
> Badevlad (18.10.09 11:21) [13]
> Может есть какие-то слабодокументированные функции или их
> параметры?
Совсем слабо слабо документированные если только :)
Нет таких функций. Не нужны они потому что.
← →qwer_qwer ( 2009-10-18 18:44 ) [15]
> очередном совпадении имя будет "Копия (2) Файл1.txt" и т.
> д.
Имена копируемых файлов выьбираются именно способом перебора (счётчик).
← →Игорь Шевченко © ( 2009-10-18 19:02 ) [16]
Собственно, никто не мешает организовать такое переименование вручную, с нужными именами копий, не обязательно искать ресурсы в shell32.dll
Internet Explorer, например, в своем кэше при дублировании имен пишет номер в имени файла file[n] - вполне себе удобно и не зависит от локализации
DVM © ( 2009-10-18 20:49 ) [17]
> qwer_qwer (18.10.09 18:44) [15]
> Имена копируемых файлов выьбираются именно способом перебора
> (счётчик).
Да ему нужно именно слово "Копия" получить как то для конкретной локализации Windows.
Здравствуйте.
--
Мне стало интересно. Сталкивался ли кто-то с такой ситуацией.
Предыстория:
Уже в третий или в четвёртый раз покупаю ноутбук, в котором происходит такая магия. Хотелось бы чтобы к этой истории отнеслись серьёзно, потому что на деле ничего смешного. Бывает так, что копируешь себе или скачиваешь из интернета картинки, переименовываешь там, обрабатываешь в фотошопе или в пайнте, сохраняешь на компе в формате jpg или png , и не подозреваешь, что когда доходит дело до того, чтобы загрузить эти картинки на другой сайт, проводник их просто не видит, хотя когда смотришь файлы не через кнопку "выберите файл - файл не выбран", у себя на ноутбуки, файлы есть! Они открываются, редактируются, просматриваются и читаются. Я уже думал, какая-то защита стоит на изображении, отскриншотил, обрезал лишнее, сохранил в обычном картиночном формате jpg
Захожу на свой сайт, нажимаю "выберите файл", открывается окно с пометкой "все форматы", но файла там нет!! Хотя я открываю в тот же момент папку с той же директорией, и о чудо в проводнике файлы есть!
Оценить 12 комментариев
Проводником у windows называется окошко такое https://lifehacker.ru/wp-content/uploads/2015/08/I. куда вы можете загружать, перетаскивать, и копировать любые файлы, и создавать там папки и ярлыки. Без проводника вы не сможете сделать на компе очень многие вещи. Так вот, когда на сайте вы жмете кнопку "выберите файл" htmlbook.ru/example, открывается вот такое окно croinform.ru/img/support/win8_sert_cacerP7b_step8.jpg - с пометкой "все файлы(*.*)"
Игорь Васильев: а если при выборе файла ввести в строке имени * или *.* и нажать открыть, чтобы проводник показал вообще все файлы, тогда они появятся?
Да я видел поле "Все файлы", но меня интересует именно проверка со звёздами!
Ezhyg: нет, проверка не помогает, я знаю об этом, если бы проблема была банальной, я бы сюда не писал.
Ankhena W: из соображения конфиденциальности, я не делаю скриншоты именно своего экрана, здесь примеры скриншотов взятых из интернета, для примера, я даже отключил SmartScreen на windows 10 - всё очень просто, когда смотришь файлы на компе, они ВИДНЫ, когда берёшь файлы С компьютера, через загрузку изображений в сети именно ЭТИХ файлов НЕТ, вообще странно, если бы картинки имели бы разное расширение, я бы ещё это понял. Я даже настроил в проводнике отображение расширений и показывать скрытые папки и файлы, НО - нет :)
Ezhyg: ну да, но это первое что я делаю, если не нахожу нужный файл в нужной папке, второе что я делаю, там на верху есть справа поиск по файлам, что вы думаете? :)) Не находит!!
Игорь Васильев: зачем нам скрины из интернета? Как выглядит проводник все и так знают.
Суть в том, чтобы убедится, что это одна и та же папка. И правильное название и расширение файла.
Чудес-то не бывает.
Ankhena W: я разбираюсь в путях и директориях, и умею их копировать, менять, уходить назад, например нажав backspace, я на этом собаку @ съел ))) - а всё оказалось куда прозаичнее, ответ читайте ниже.
Игорь Васильев: ну видимо, все таки не вполне, если не отличаете файл от ярлыка и считаете, что для показа скрытых файлов нужен FTP-клиент.
Ankhena W: вы не поняли про какие ярлыки я говорю. Всё что вы видите в проводнике, это ярлыки, ярлык папки, ярлык музыки, ярлык картинки, у ярлыков есть имя, которое можно менять, как и расширение, такая архитектура у винды, чтобы цеплять путь, свойства, функционал, да что угодно, так удобно считать количество, делать сортировку, и менять размер, если бы это были не ярлыки, вы бы не могли их выделять, по одному или группой. По ярлыкам ведётся поиск свойств и расширений.
такая ситуация была на разных ноутбуках. Такое происходило с разными изображениями, при чём, я мог их перетаскивать с одного и того же сайта, но лишь часть могла быть просто невидимой для загрузки в сеть. Это я наблюдал и на Vista, и на 7,8,10 - windows. Проверял на вирусы, перезагружал комп, скриншотил недоступные фотки, и сохранял как новые изображения, но это явление я наблюдаю не первый год. Может это глюки в системе explorer.exe?
Игорь Васильев: ага и никто с этим не сталкивался, а всё потому что у вас ник "проклят", там цельные три шестёрки :D
Я разобрался в чём дело, кому интересно, читаем.
Чтобы не случилось такой магии как у меня, перетаскивать файлы в проводник не рекомендуется, так как иногда это приводит к сбою ярлыков, и вам будет казаться что файл вы у себя сохранили. В случае ошибки обычно вылезает файл desktop.ini - вы его не увидите, но он создастся. Его можно увидеть через FTP-клиент, или если настроить проводник так, чтобы он показывал скрытые папки и файлы. Полезно это будет тем, кто пользуется git, чтобы убедиться, что папка .git появилась. Так что, если вам в дальнейшем файл понадобится для закачки в сеть интернет, сохраняйте его через клик правой кнопки мыши. И всё будет работать.
Всё. Всем спасибо за внимания, и успеха в делах.
P.S. Ezhyg - 666 - число человеческое, означает температуру тела 36,6 в библии это написано, я посчитал учитывая подсказку, поэтому мне смешно читать про проклятие. К тому же все чудеса появляются от незнания, объяснить можно всё, но не всем.
захожу в папку с фотками (решил порядок навести - типа такая генеральная уборка в компе) и вот допустим в папке Животные есть папка Динозавры. а в папке Динозавры фотки этих динозавров. и чтобы моментально искать их с помощью поиска (который есть в каждом окне ОС) я сопоставляю название папки с её содержимым - вот те же Динозавры. значит и фотки будут так же называться. только одна странная вещь выходит: я выделяю все фотки жму F2 (переименовать типа) задаю имя "динозавры" одной из фоток а остальные сами переименовываются. но к каждой становится цифра (динозавры (1) динозавры (2) динозавры (3) и т. д. но иногда бывает что файлы идут с теми же единичками подряд хотя я заметил что в семёрке допускается такое если у файлов разное расширение. но они все в формате jpg и все с пометкой (1) почему так?
неее когда копии там ставится пометка копия 1 копия 2 и т.д. - я же фотки вижу что они разные но имена одинаковые и расширения одинаковые
Ну и что? Переименованые файлы,ку твоему сведению, не имеют одинаковые имена. Как правило там добавляется счетчик т. е. цифры.
Андрей Колгатин Профи (887) ну вот в этом и странность если бы этот счётчик шёл 1 2 3 и т.д. то это я понимаю а то они идут одинаковые расширения одинаковые имена и этот счётчик допустим может быть 4 единички или 4 двойки (которые в скобках компьютер сам ставит) так же не должно быть
если расширение у файлов одинаковое, одинаковые имена не допускаются. анубис 31 правильно считает, что это копии.
копии это когда 2 и более файлов одинакового содержания в одной папке с одном расширением и с автоматической подписью "копия" "копия 1" "копия 2" в имени файла в конце. а у меня в папке несколько фоток разного содержания но одного расширения и одного имени. я этого не понял почему так поэтому и задаю этот вопрос
zloj_krys Просветленный (21073) дык я тоже не догоняю, т.к. такого НИКОГДА не встречал. давно переименовывал в тотале, там в счётчике указываешь число знаков и шаг. всё шло на ура. а так, при конвертировании фильмов, прога сама нибудь-чё добавляет к новому файлу, если сохранение в том же каталоге.
Доброго времени суток.
Убедительная просьба, помогите пожалуйста решить задачу.
Существует исходный путь (SrcDir), который идет до определенного каталога. В этом каталоге есть определенная структура (всегда разная) может быть разная, но "скелет" структуры всегда один. Если точнее - исходный путь содержит структуру папок с файлами для обновления в других местах (DstDir), но она может быть различной в зависимости от количества и целевой задачи обновляемых файлов.
В свою очередь, папка назначения (DstDir) так же имеет "скелет", схожий с SrcDir, но по факту, всегда полный. То есть, грубо говоря, в DstDir есть папки, подпаки, файлы всегда. А в SrcDir папки, подпаки с файлами могут составлять только часть DstDir.
Необходимо скопировать все папки, подпапки с файлами из SrcDir в DstDir, но в случае совпадения файлов, нужно, чтобы исходный файл в DstDir переименовался, к примеру, с постфиксом текущей даты и времени (просто добавить в имени файла).
Мой последний (но не доведенный до ума) вариант:
Получить текстовые файлы с перечнем файлов "Исходника" и "Назначения"
Вывод в цикле добавил, чтобы хотя бы проверить работоспособность поиска совпадаемых файлов. Однако ничего не получилось.
Все эти куски кода подразумевали то, что получится переименовать потенциально заменяемые файлы в DstDir, а потом с помощью
произвести копирование. Я понимаю, что если файлы уже переименовать, то в ключе /-Y может не быть необходимости, просто на всякий случай добавил.
Но у меня никак не получается все довести до ума. Я пробовал использовать вложенный цикл с
, который в первой итерации получал файл в SrcDir, а потом проверял этот файл на наличие в DstDir, но всего, чего я добился - это частое повторение значений совпадаемых файлов, причем опять же работало это некорректно, насколько помню, он просто выводил список в DstDir.
Возможно есть более простой способ реализации, либо этот можно как-то допилить.
Спасибо за любую помощь.
Копирование файлов с переименованием в случае совпадения имён перемещаемых и имеющихся в папке назначения файлов
Добрый день. Помогите создать bat файл. Смысл в чем есть папка загрузки на компьютере с нее файлы и.
Копирование с переименованием и заменой файлов в каталоге назначения
Господа, добрый день. Прошу помочь в решении задачки, что то не получается её победить :(.
Необходимо скопировать все папки, подпапки с файлами из SrcDir в DstDir, но в случае совпадения файлов, нужно, чтобы исходный файл в DstDir переименовался, к примеру, с постфиксом текущей даты и времени (просто добавить в имени файла).
Из всей выше каши - это одна умная строка.
Теперь далее.
Задача, вероятно, не разовая (иначе даже при сотни тысяч уже ручками сделать было можно) и отсюда вопрос и не один:
"Что" занимается копированием, по какой "чьей" команде, это по времени происходит или .
. нужно, чтобы исходный файл в DstDir. - какой файл, как зовут.
Приведите нормальный пример:
Вот примерный список этой папки (или скрин), вот - этой, надо при входе в систему или при выходе из браузера чтобы произошло сравнение этих двух кадалогов и новый файл по времени создания или изменения или имени или размеру по-отношению к файлам одного каталога или всем файлам каталогов куда-то скопировать.
Не знаю, что насчет каши, я просто старался максимально подробно все описать (по-моему все вполне ясно, только без примеров). Вот с примерами:
SrcDir имеет следующую структуру (она же в тексте темы названа "скелет") - файлик SrcDir.jpg. В этих каталогах есть файлы, но в разное время они всегда будут разные. То есть конкретно сейчас в папке RDF есть два файла:
ACC_LIST.rdf
ACCLISTG.rdf
DstDir имеет схожую структуру, как и SrcDir, только путь до нее другой (файлик DstDir.jpg). Конкретно в папке RDF есть 4 файла:
ACC_LIST.rdf
ACCLISTG.rdf
OSTR_A.rdf
umc_a_bu.rdf
Нужно скопировать файлы из SrcDir в DstDir, но при копировании будут два одинаковых файлика (ACC_LIST.rdf, ACCLISTG.rdf). Нужно, чтобы в DstDir уже существующие переименовались с постфиксом даты и времени, после этого скопировались из SrcDir.
Задача, вероятно, не разовая (иначе даже при сотни тысяч уже ручками сделать было можно) и отсюда вопрос и не один:
"Что" занимается копированием, по какой "чьей" команде, это по времени происходит или .
. нужно, чтобы исходный файл в DstDir. - какой файл, как зовут.
Задача не разовая, выполняется с целью обновления этих файлов на более новые, но старые нужно сохранять для того, чтобы можно было вернуть их в качестве рабочих. Содержимое SrcDir всегда разное, поэтому и нужно, чтобы искались все вложенные файлы.
DstDir так же будет меняться, то есть в примере с вложенного изображения путь (D:\DESTINATION\vb6) может меняться на (E:\DATA_FILES\DESTINATION\vb6) или вообще на какой-либо путь к сетевому ресурсу.
"Что" по "чьей" команде выполняется - не до конца понял, в чем вопрос, мне нужно .bat файлик, который будет все это выполнять на конкретный момент запуска этого .bat файла, без всяких входов в систему, закрытия браузера и т.д.
Добавлено через 9 минут
Этот с перекопированием:
Я извиняюсь, что так поздно ответил. Что-то совсем забыл отписаться.
alpap помог очень хорошо, большое спасибо.
Конкретно для моей задачи еще небольшое изменение кода:
Да, я таким образом тоже проверял, все нормально выходило. Но стоит %time:~0,8% засунуть в цикл - все время валится ошибка о том, что переименовываемый файл занят другим процессом (я уже проверял, ничем он не занят, а переименование БЕЗ цикла проходит без проблем).
С этим согласен, я сейчас как раз привожу к более красивому внешнему виду (ну как могу, я в cmd особо не работал никогда). Спасибо за этот вариант. Я заодно и сам цикл по копированию и переименованию вынес для call.
Есть еще один небольшой вопрос, который возник:
У меня почему-то в результате выполнения кода выше не происходит завершение программы. Мне необходимо, чтобы в случае, если в choice пользователь выбрал "n" - происходил выход (именно закрытие самого пакетного файла). А у меня почему-то все равно выполняется остаток кода. Почему такое может происходить?
можно еще на метку выхода goto eof переходить, но в данном случае не имеет значения.
Добавлено через 6 минут
Пауза для наглядности стоит, в рабочем коде (где она не требуется специально) не нужна.
Добавлено через 3 минуты
titaniche,
Да, а в цикле %time:~0,8% и не будет работать, это как менять новоназначенную переменную, надо вначале
Setlocal EnableDelayedExpansion
а переменную записать так !time:~0,8!
или через call выкидывать в пп, тогда ничего менять не надо.
Добавлено через 8 минут
Еще можете посмотреть как организовыватся сложное (в смысле более 1го уровня) меню.
Спасибо за консультацию по поводу меню. Я, так то, думал про конструкцию вида set /p m="", но хотел использовать choice, потому как вроде бы короче, компактнее.
Я уже не понимаю, откуда у меня какие-то невероятные вещи случаются. О_о
Вот еще одна проблема:
Переменные rnf и cpf я использовал в качестве счетчиков. Но я совершенно не понимаю, почему rnf изменяется корректно, а cpf не меняется вообще? В итоге на экране у меня выходит верное значение rnf и совершенно пустое cpf. Даже 0 не выходит, просто нет ничего. Такое ощущение, что set /a cpf+=1 не работает совсем (вернее это не ощущение, а действительно не работает. Пытался добавить в блок else вывод cpf, чтобы увидеть значение на каждой итерации цикла (разумеется, когда условие выполняется) - выходят нули).
Уже не представляю, просто, в чем дело. Пробовал разные конструкции, хоть set/a cpf=!cpf!+1 - бесполезно. rnf отрабатывает корректно, а cpf нет.
titaniche,
Вы не прикалываетесь сейчас?
Если есть файлы мы их копируем и считаем и видим кол-во
Если нет файлов мы их считаем, но не видим кол-во или даже и не считаем по условию
это мои мысли, но точно понимать задачу можно по полному коду, диплома телепата у меня пока нет, но есть чувство, что скоро будет
Добавлено через 4 минуты
Вы хоть смотрите что я делаю и как, опять куча . зачем в такой [set strdir=!strdir:~-4!], откровенно дурацкий способ подменять путь, такая путаница, посмотрите как четко и понятно у меня, захочешь не ошибешься.
Добрый день. Помогите создать bat файл. Смысл в чем есть папка загрузки на компьютере с нее файлы и папки содержащиеся в ней должны копироваться в определенную папку на жестком диске. Файлы и папки в папке загрузки с определенной переодичностью удаляются другим батником. И после в папке загрузки могут появляться файлы с тем же именем что и файлы перемещенные в указанную папку. Требуется что бы при копировании новых файлов из папки загрузки в случае совпадения имён копируемых и имеющихся в папке назначения файлов к старым файлам находящимся в папке для копирования добавлялся префик (например дата создания файла) в названии, а новые файлы просто копировались из папки загрузки.
Спасибо за любую помощь.
Копирование с переименованием и заменой файлов в каталоге назначения
Господа, добрый день. Прошу помочь в решении задачки, что то не получается её победить :(.
а если два или более в эту дату - не пойдет, добавляем единичку (и +1) в конце имени, при его совпадении
Работает но копируются только файлы находящиеся в этой папке
Дата в имя файла не вставляется добавляется цифра +1 в названии файла (как добавить пробел)
В этой статье
Копирование файлов с переименованием в случае совпадения имён копируемых и имеющихся в папке назначения файлов
Код который используется самым последним в названии добавлялась file и текущая дата и время
Можешь подскакать как сделать так что бы он копировал и папки и файлы файлы находящиеся внутри них по той же схеме что и файлы в основной папке?
это уже второй запуск - два файла соответственно при этом коде,
при первом коде в той же папке был бы при первом запуске 1111, в другой папке только со второго запуска будет 1111, так как предполагается что проверяемый 111 уже есть
Добавлено через 9 минут
А как настроить что бы новая цифра была через пробел и окружена скобками
Добавлено через 1 минуту
Я все внимательно несколько раз прочитал я просто не разбираюсь в якыке этого кода
Добавлено через 2 минуты
Меня впринципе все устраивает в том коде на которую я дал ссылку, там не работает ли то что не учитываются внутринние каталоги в этой папке и файлы который в них находятся
Спасобо тепеть файлы которые уже есть с цифрой в скобках. А как сделать что бы копировались папки и файлы в них. На рисунке 1 папки присутствуют, а га рисунке 2 куда происходит копирование папок нет.
но в %%a уже будет полный путь и надо будет откорректировать "%d_in%\%~1"
Добавлено через 1 минуту
это xcopy /? или robocopy /?
Добавлено через 1 минуту
да и вообще это другая задача уже - как всегда хромает постановка задачи
а еще как всегда - неправильный подход к выполнению задачи.
Подскажи а будет учитываться только папка находящаяся в это папке, или паппка в папке в папке. И файлы в этих папках будут копироваться по тойже схеме ч и в основном каталоге?
Добавлено через 8 минут
Смотри у меня есть папка загрузки и в ней находятся файлы и папки с файлами. Файлы из папки загрузки удаляются каждый понедельник. Но мне требуется чтобы эти файлы хранились в отдельной папке на другом диске. (С этим мы разобрались файлы из папки загрузки копируются). Но как я писал в самом начале файлы загруженные в папку загрузки могут иметь одинаковое название с теми что уже скопированы. (С этим мы тоже разобрались). Теперь остасоль разобраться с тем чтобы копировались не только файлы, но и папки которые есть в папке загрузки, а в этих папка тоже есть файлы. Папки должны просто копироваться без присвоения им +1 в названии, а файлы которые в них солердатся должны следовать томуже правилу что и в основной папке.
Добавлено через 1 минуту
Давай я завтра на фотография все объясню. Просто сейчас надо идти и нет возможности показать. Хорошо?
а уж потом занимался совпадениями. Что там вообще потом можно будет найти: файл (1), . файл (1001), какой нужен кто помнит, все перепробовать?
alpap, Добрый день. Давая я заново обресую ситуацию, постарался изложить в подробностях:
Сейчас у меня есть две папки с их уровнем вложений (эти папки сейчас используются для примера): (рис. 1)
C:\Users\Toshiba\Desktop\5 (в будущем это будет папка загрузки) (у папки C:\Users\Toshiba\Desktop\5 есть еще под папки с неизвестный уровнем вложений сейчас их 2 но, в будущем может получиться так C:\Users\Toshiba\Desktop\5\Новая папка\Еще папка\Еще папка\Новая папка\ и так далее уровень конечного вложения сейчас неизвестен) (рис. 2)
C:\Users\Toshiba\Desktop\6 (это папка куда сейчас копируются файлы из папки C:\Users\Toshiba\Desktop\5, в будущем она тоже изменится)
Что мне требуется сейчас: (знаком +++ я отмечу то что уже реализовано)
+++1) Чтобы файлы из папки C:\Users\Toshiba\Desktop\5 копировались в папку C:\Users\Toshiba\Desktop\6, этим скриптом файлы копируются.
+++2) Файлы из папки C:\Users\Toshiba\Desktop\5 удаляются каждую пятницу. (это получилось реализовать самому с помощью другого bat файла, удаляются через планировщик заданий Windows)
+++3) При первичном копировании файлы из папки C:\Users\Toshiba\Desktop\5 копируются с оригинальным названием в папку C:\Users\Toshiba\Desktop\6, (или вторичное использование скрипта или первичное копирование файлов из папки C:\Users\Toshiba\Desktop\5, но они уже присутствую в папке C:\Users\Toshiba\Desktop\6) но если в папке C:\Users\Toshiba\Desktop\6 уже присутствует файл с таким названием, то к ним добавляется префик, а файлы из папки C:\Users\Toshiba\Desktop\5 снова копируются с оригинальным названием. (рис. 3 - первое использование скрипта когда папка была пуста, рис 4 - второе использование скрипта когда в ней эти файлы уже находились)
+++4) Пример - оригинальное название 1.txt при вторичном копировании с использованием скрипта с кодом
файл в папке C:\Users\Toshiba\Desktop\6 переименовывается в 11.txt, а файл из папки C:\Users\Toshiba\Desktop\5 копируется с названием 1.txt (как показано на рис. 4)
5) Если заменить часть кода выше указанного скрипта на:
мне не подходят так как мне не надо распределять файлы по их расширению
////////////////////////////////
Этот код меня тоже не устраивает:
так как он не учитывает то что могут появляться файлы с одинаковым названием (те файлы которые были в папке откуда происходит копирование удалились, а на их место пришли файлы с тем же названием).
Читайте также: