В обсуждении записи про раздел реестра App Paths читатель YaNkEE подметил, что файл write.exe присутствует одновременно в папках Windows и System32. И это не единственный пример дублирования файлов. Вы можете убедиться, что в каждой из этих папок лежит по блокноту. Зачем это сделано?
Преданья старины глубокой
Два файла notepad.exe обеспечивают совместимость приложений, играя ту же роль, что и некоторые подразделы App Paths.
Сторонние программы
В данном случае речь идет о совместимости со сторонними программами, в которых жестко прописан путь к блокноту. Например, многие установщики программ до сих пор открывают readme.txt именно в нем, и кто его знает, как разработчики это прописали.
Все дело в том, что в Windows 3.0 местом хранения блокнота была папка Windows, а в Windows NT 3.х – папка System32. Несмотря на то, что обе системы давно стали пыльной историей, блокнот до сих пор размещают в обеих папках. Интересно, что делается это не во всех операционных системах Microsoft, а если и делается, то различными способами!
Реализация в разных операционных системах
В Windows XP и Windows Vista в обеих папках лежит по файлу notepad.exe. А разработчики Windows Server 2008 решили убрать блокнот из папки Windows, оставив его только в System32. Наверное, они сочли, что на серверной системе устанавливается меньше прикладных программ, и вероятность попадания на несовместимую программу намного ниже.
Судя по тому, что в следующих серверах от этой идеи не отказались, расчет оправдался. Любопытно, что после включения компонента Desktop Experience блокнот все-таки появляется в папке Windows (спасибо за информацию, Morpheus).
В Windows 7 и Windows 8 блокнот присутствует в обеих папках, но на диске размещен только один файл notepad.exe.
Его наличие в разных папках обеспечивают жесткие ссылки (hard links), которые и станут основными героинями сегодняшнего разговора. Аналогично, в серверных системах после включения компонента создается именно жесткая ссылка на notepad.exe, а не копия файла. Кстати, программа write тоже дублируется жесткой ссылкой.
Не совсем понятно, почему это решение не внедрили еще в Vista, но совершенно ясно, почему так не сделали в XP. Дело в том, что жесткие ссылки являются свойством файловой системы NTFS, а ХР можно было устанавливать еще и на FAT32.
[+] Дальше в программе
Как увидеть жесткие ссылки
Символические ссылки легко определить – в файловом менеджере их видно по значку, а в результатах команды dir напротив ссылок пишется SYMLINK. Жесткие ссылки не очевидны, в прямом смысле этого слова.
Проверить уникальность блокнота можно в командной строке, запущенной от имени администратора. Команда fsutil покажет вам жесткие ссылки на файл:
fsutil hardlink list %windir%\notepad.exe
Сюрприз! Блокнотов в Windows 7 не два, а четыре! Как видите, еще два обнаруживаются в папке winsxs.
А в 64-разрядной Windows 7 их вообще шесть.
Увеличить рисунок
Это связано с тем, что в папке System32 лежат 64-разрядные версии файлов, в том числе блокнот (я выделил еще одну занятную нестыковку Windows, уходящую корнями в прошлое). А в папке SysWOW64 хранится 32-разрядная версия notepad.exe, которая имеет свою жесткую ссылку в папке winsxs, в чем вы можете убедиться самостоятельно.
Внушительное количество жестких ссылок подводит нас к вопросу использования ими дискового пространства.
Сколько места на диске занимают жесткие ссылки
Нисколько! В файловой системе NTFS каждый файл можно считать жесткой ссылкой на самого себя. На файл может ссылаться сколько угодно жестких ссылок (точнее, не больше 1023). Они могут запускать его из разных расположений, и при этом неотличимы друг от друга в проводнике и результатах команды dir.
Физически на диске присутствует только один файл, но нестыковка между структурой файловой системы и ее отображением в оболочке порождает вопросы и даже деструктивные действия.
Самым ярким примером непонимания принципов работы и назначения жестких ссылок являются руководства по чистке папки winsxs. О ней меня недавно просил рассказать читатель блога Антон, и вот представился случай.
Не пропустите рассказы о том, как грамотно уменьшить размер папки winsxs в Windows 7 и в Windows 8 и новее.
Проводник видит папку winsxs так:
Но в реальности папка содержит немного уникальных файлов, которые изначально занимают на диске в среднем 400 Мб. Эта цифра относится к Windows Vista, и логично предположить, что в Windows 7 дело обстоит примерно так же (по крайней мере, понятен порядок цифры).
Все остальные файлы с помощью жестких ссылок проецируются в папки Windows, System32 и т.д. Появление папки winsxs связано с изменением платформы Windows, которая теперь складывается из компонентов как дом из кирпичей. По сравнению с Windows XP такая модель упрощает развертывание и обслуживание WIM-образов. Это верно даже после установки системы, поскольку она представляет собой образ, примененный к диску. Например, список компонентов и их состояние можно посмотреть командой
Dism /online /Get-Features
Может показаться, что зачистка папки winsxs никак не нарушает нормальную работу системы. Так, Антон лишился только русского языка в Internet Explorer, причем с его слов исключительно по невнимательности. Однако нарушения нормальной работы Windows не всегда заметны, если они происходят под капотом системы.
Для стабильной работы Windows необходимо нормальное управление компонентами, безотказное восстановление и правильное обновление.
Так, содержимое папки winsxs используется для проверки системных файлов (SFC), а хранящиеся в ней версии файлов обеспечивают подбор наиболее подходящей версии при установке и удалении обновлений.
Подробнее о назначении папки winsxs вы можете узнать из блогов создателей Windows и команды Windows Server Core (EN), а я предлагаю вернуться к разговору о жестких ссылках.
Как создать жесткие ссылки
Мы выяснили, что Microsoft использует жесткие ссылки для обеспечения совместимости (пример с блокнотами) и безотказного обслуживания операционной системы (пример с папкой winsxs). Предлагаю вам самостоятельно создать жесткие ссылки и поиграть с ними.
Жесткие ссылки необязательно должны иметь такие же имена, как файл, на который они указывают. Это легко проверить:
@echo off :: Переходим на рабочий стол cd %userprofile%\desktop :: Создаем произвольный текстовый файл echo Hello, Hard Links! > 1.txt :: Создаем жесткую ссылку на файл fsutil hardlink create 2.txt 1.txt :: Создаем жесткую ссылку на жесткую ссылку fsutil hardlink create 3.txt 2.txt pause
Все три файла имеют одинаковое содержимое и атрибуты.
Попробуйте изменить и сохранить третий файл, а потом открыть первый. Вы увидите сделанные вами изменения, хотя вы его не открывали до этого. Аналогично, если вы заблокируете изменения в любом файле атрибутом «Только для чтения», это немедленно отразится на всех ссылках.
Хотите еще поэкспериментировать? Удалите один из файлов в корзину. Теперь откройте любой из оставшихся файлов и измените его, а затем восстановите удаленный файл. Вы обнаружите в нем изменения, произошедшие за то время, что он валялся в корзине!
Кстати, вы заметили, что после удаления файла у его братьев на значке появился замок, загадка которого, похоже, до сих пор полностью не разгадана.
Замок пропадает, как только вы возвращаете файл из корзины и обновляете папку или любой из файлов.
Как ускорить свою работу с помощью ссылок
В комментариях все к той же записи про AppPath читатель jakv поделился своим опытом использования ссылок.
Имею папку MyTools, добавленную в PATH. В папку помещаю символические ссылки с краткими именами на необходимые мне программы. В результате при вызове программы не нужно вводить полный путь.
Раскрывая этот пример, допустим, что у вас утилита Process Explorer лежит в папке D:\Sysinternals. Можно назначить ей псевдоним pe одной командой, используя символическую или жесткую ссылку на выбор.
Вы уже видели, как создает ссылки fsutil. Давайте теперь сделаем это командой mklink.
:: Символическая ссылка на файл mklink D:\MyTools\pe.exe D:\Sysinternals\procexp.exe :: Жесткая ссылка на файл mklink /h D:\MyTools\pe1.exe D:\Sysinternals\procexp.exe
Во втором случае я использовал другой псевдоним, т.к. не получится создать в папке два файла с одинаковым именем.
В отдельном столбце проводника я отобразил атрибуты файлов, чтобы показать, что буква L обозначает символическую ссылку. Вы также можете добавить столбец «Цель ссылки», чтобы посмотреть, куда она ведет. Этот рисунок также хорошо подчеркивает разницу между жесткими и символическими ссылками. Первые являются полноценными файлами, а вторые больше похожи на ярлыки.
Из своей практики я уже делился примером укрощения программы, в которой был зашит абсолютный путь к одной из папок профиля. Кстати, пример резонирует с причиной наличия блокнота в каждой из системных папок. А недавно я решил перенести одну папку в другое место. Поскольку ранее я создал на нее ссылки в реестре, символическая ссылка избавила меня от необходимости выполнять поиск и замену пути в нем.
В чем разница между жесткими ссылками, символическими ссылками и соединениями
Поскольку эта запись логически завершает серию статей о ссылках NTFS, хотелось бы подвести итог и сопоставить их возможности.
Создание и удаление связей
Команда mklink в Windows 7 и Vista умеет создавать все три типа связей. Жесткие ссылки можно создать только на файлы, но не на папки — для этого исторически существуют соединения.
Символические ссылки совмещают в себе свойства соединений и жестких ссылок. Для пользовательских задач их вполне достаточно, и в большинстве случаев не возникает необходимости в применении других способов.
Удаление ссылок в Windows 7 и Vista не несет в себе особых сюрпризов, поскольку целевые файлы и папки остаются в целости и сохранности. Внимательным нужно быть лишь при рекурсивном удалении файлов из папки командой del /s, т.к. при этом будут удалены все файлы в целевой папке.
Сравнительная таблица
Для полноты картины в таблице отражены некоторые возможности, которых я не касался в своих материалах.
Возможность | Символическая (symbolic link) |
Жесткая (hard link) |
Соединение (junction) |
---|---|---|---|
Файловая система | NTFS | NTFS | NTFS |
Ссылка на локальную папку | Да | Нет | Да |
Ссылка на локальный файл | Да | Да | Нет |
Ссылка на сетевую папку или файл | Да (UNC путь) | Нет | Нет |
Относительный путь в ссылке | Да | Нет | Нет |
Связь между томами* | Да (абсолютные ссылки) |
Нет | Да (локальные тома) |
Команда для просмотра ссылок | dir | fsutil | dir |
* Не путайте том с диском или разделом. Тома могут включать в себя несколько разделов или даже дисков. Подробнее читайте в статье о конфигурировании динамических томов (мой перевод 2006 года:)
Различные типы связей между папками и файлами дают файловой системе NTFS преимущества, которые Microsoft использует для обеспечения совместимости приложений и стабильной работы Windows. В немалой степени именно по этой причине уже третье поколение систем Microsoft не устанавливается на файловую систем FAT32.
Проголосовавших за первые два пункта я прошу объяснить источники беспокойства, а выбравших п.1 еще и причину выделения под систему столь малого раздела. И расскажите в комментариях, сколько вы у себя насчитали блокнотов :) Нужна помощь с подсчетом?
Александр
Появилось продолжение теме WinSxS. Посмотреть и забрать готовый скрипт “winsxscompact.cmd”, который выполняет ntfs-сжатие уникальных файлов в папке WinSxS, можно здесь: http://www.ithabits.ru/151750-naznachenie-i-svoystva-papki-winsxs-v-windows-sposobyi-ochistki-i-szhatiya-perenos-podpapki-backup.html
Dmitriy Bobrovskiy
Вадим, может быть стоит добавить в статью информацию, что типы связей в Microsoft называют точками повторной обработки (reparse points) и что указанные Вами типы связей — лишь часть от их многообразия? Этот логический кусочек упростит жизнь желающим разобраться со всем этим подробнее, начиная с Вашей статьи.
Vadim Sterkin
Дмитрий, я не упоминал reparse points по одной простой причине. Терминология и без того запутана, ввиду различных типов ссылок и сленга, которым их обозначают. Внесение еще одного термина в статью ничего не упрощает.
Гм… звучит так, будто там есть еще много всего разного и полезного, о чем я умолчал :) Но в NTFS для конечного пользователя (моей ЦА) там больше ничего нет. Да, есть подключаемые тома (в т.ч. VHD), но там все прозрачно.
Если вы видите еще что-то полезное в многообразии, поделитесь примерами, в т.ч. практического применения.
UserXP
Спасибо за отличную статью.
Не понятно только вот что: а на кой Семёрка обманывает пользователя, неверно информируя об дутом объёме WinSxS? На кой она орёт о недостаточности места на диске, если, как оказывается, это совсем не так? Ведь именно из-за этого и возникает у многих несчастных пользователей весь этот геморрой с очисткой системы (от самой себя). Что это, фундаментальная ошибка разработчиков Microsoft?
Vadim Sterkin
Вас никто не обманывает (или все обманывают, смотря в чем вы смотрите свойства папки). И уж тем более никто не орет.
Уведомления о недостатке места на диске никак не связаны с тем, что показывает в свойствах папки winsxs файловый менеджер (т.е. жесткие ссылки тут ни при чем). Они означают, что места на диске действительно мало. Читайте также другие материалы на тему CBS
Александр [Маздайщик]
По поводу неразличимости жёстких ссылок. На самом деле файлы чутка различаются: для жёсткой ссылки не создаётся досовское имя в формате 8.3 (и на x64 тоже) — это было сделано для совместимости со старыми программами. Можно создать файл с длинным именем (длиннее 8 символом), создать в той же папке к нему жёсткую ссылку, тоже с длинным именем и убедиться командой dir /x, что у второго файла нет короткого имени.
Дмитрий [MSFT4EVER]
Александр [Маздайщик],
У меня на W 8.1 вообще непонятка: у каких-то файлов и папок 8.3 имена есть, у каких-то нет. И так на всех дисках. Вот и ваш пример проверить не удалось)
Сергей
1. Беспокоит.
2. Имею один на ssd полтерабайта.
3. Беспокоит по простой причине — это мой hdd и я должен решать имеет ли право занимать тот или иной файл недешевое место на диске или нет. Как показывает практика, если отдать это решение на откуп майкрософт — место будет расходоваться крайне не эффективно. Как то раз наблюдал папку windows весом в 97Гб. Одна пятая часть моего диска? Не много ли хотите?
Vadim Sterkin
Сергей, лечение от беспокойства тут.
Hello World!
Подскажите, а как можно посмотреть список символьных ссылок для какого-либо файла\папки?
Vadim Sterkin
Странно вас родители назвали… Посмотреть можно только все ссылки в папке или на диске, о чем рассказывается в связанной статье.
Андрей
Большое спасибо за статью. Все описано предельно доступно.
Однако, с жесткими ссылками у меня возникла одна проблема. Суть в следующем: имеется файл базы данных определенной программы. При внесении изменений в БД, программа осуществляет перезапись путем создания временного файла и замены им исходного файла. В результате все созданные жесткие ссылки теряются, т.к. исходный файл по сути не изменяется, а замещается новым файлом с тем же именем.
Подскажите пожалуйста, есть ли способы делать жесткие ссылки таким образом, чтобы при замещении исходного файла создавалась связь с новым файлом?
Vadim Sterkin
Андрей, я не знаю такого способа, но если имя файла такое же, можно заскриптовать проверку папки через определенные интервалы и создание новых жестких ссылок.
Андрей
Точно. Как-то сразу в голову не пришло. Спасибо!
Александр [Маздайщик]
Можно попробовать использовать вместо жёсткой символическую ссылку (символические ссылки на файлы доступны в NT 6.x — в XP не пойдёт). Но я не знаю, на сколько подходит сценарий использования символической ссылки в вашем случае.
Андрей
У меня 7-ка, но символические ссылки, к сожалению, не подходят. Нужны именно жесткие. В любом случае, спасибо за ответ.
Verstala
Лет десять назад решился таки перейти с горячо любимой W98 на XP. Пришлось постараться, но XP только казалась стервой, но после ухаживания и искренних попыток понять оказалась очень даже доброй и отзывчивой.
Наше сотрудничество длилось восемь лет. Однако пришлось переходить на Win7, ибо x64, а значит 8 Гб ОЗУ.
Именно Win7 из-за слухов о её надежности и производительности, сравнимыми с Linux.
Ваши статьи очень помогают понять её лучше, а значит быстрее привыкнуть и полюбить. Спасибо.
При установке новой избранницы скрипя сердцем и вопреки привычкам выделил целых 26 Гб. Теперь понимаю, что маловато — 36 Гб было бы лучше, но варварски перераспределять не собираюсь. На нетбуке тоже Win7 x64 и системный раздел 32 Гб — самое то для младшей.
На обоих отключено обновление — ставлю вручную, включено наблюдение только системного, «Загрузки» и «Мои документы» перенесены с системных разделов. Гамы по традиции ставлю только в D:\Games, а Program Files только для программ.
Особых неудобств в связи с маленьким разделом не испытываю и держу свободное место на уровне 8-10 Гб чисткой, актуализацией контрольных точек, дефрагментацией и оптимизацией и прочими ласками с шоколадом и цветами.
На ваш блог попал как раз в поисках инфы по WinSxS. Нет, он меня больше не беспокоит после того как выяснил, что это «…аналог репозитория Debian…»Благодарю вас и комментаторов за кучу очень полезной информации. За три дня чтения прокачал навык Компьютеры на +2.
Vadim Sterkin
Метка: CBS
У вас еще все впереди :) ↓ Приятного чтения
6 ошибок людей с маленьким системным разделом
Сколько у вас лишних разделов на диске?
Verstala
Эти две статьи прочитал ранее, но не обращал внимание на комментарии. А зря — такие страсти кипели. Хотя мне понятно, что опоздал умничать на четыре года. До меня уже много раз повторяли доводы в пользу компактного загрузочного раздела. С некоторыми согласен, с другими нет. Ну и ладно.
Может получится поумничать в комментах к другим статьям.
Лев
При первом прочтении, логическая ссылка представляет из себя безусловный переход по косвенному, а жёсткая ссылка — по прямому адресу. Как ни крути, процессор работает с этими командами, ему «вынь да положь». Первая занимает на диске 1 слово (32б/64б), а вторая — два… т.е. 4Б/8Б и 8Б/16Б соответственно.
Спасибо за статью, но те, или иные размеры раздела под ОС в основе своей зависят от того, что будет доустановлено (личные потребности). Как по мне, то результаты труда на компе, должны храниться/сохраняться на внешних, по отношению к ОС, разделах/дисках. Тогда в случае чего, разницы между сис.восстановлением ОС и Акрониксом, не будет никакой… как и потребности хранить всё это на SSD.
CRaZyCAT
Создал текстовый файл, Написал в нем определенную информацию, сохранил. Сделал жесткую и символическую ссылку на файл, полностью удалил исходный файл(Shift+Del). Жесткая ссылка продолжает работать. Почему? Как это можно исправить/использовать для восстановления исходного файла?
Vadim Sterkin
1. Жесткая ссылка не продолжает работать, т.к. вы удалили один из связанных файлов. У вас просто остался один из идентичных файлов.
2. Восстановить удаленный он не поможет, но он идентичен удаленному файлу (если вы не изменяли его, конечно).
Alexandr Kovalchuk
Гипотетическая ситуация:
Есть жесткий диск на 15 ГБ. На нём лежит файл размеров в 10 ГБ. Создаём на него жесткую ссылку.
1. Что будет отображаться в проводнике? Занято 20 ГБ из 15?
2. Даст ли система заполнить оставшиеся 5 гигов? (я конечно догадываюсь, что да, но хотелось бы уточнить)
Vadim Sterkin
Александр, превратите гипотетическую ситуацию в практическую! Сожмите свой диск немножко в diskmgmt.msc (хотя бы на 200МБ, это не больно) > создайте раздел на полученном пространстве > проведите эксперимент > отчитайтесь о результате.
Alexandr Kovalchuk
Ответ на второй вопрос нашел в соседней теме
А тесты привели к странным результатам:
Отгрыз 50МБ, создал на нём раздел. После форматирования он стал вот таким: http://i.piccy.info/i9/f9df3c8a83cf34c1cdc2593e42880327/1446222578/3174/965915/Snymok.png
хотя на нём только корзина на 258 байт да SysVolInfo на 7КБ. Ну да бог с ним. После fsutil file createnew test.txt 20000000 он, вполне ожидаемо превратился в такой:
http://i.piccy.info/i9/1e7d1fdb4f414d30a42910fb67d6cb15/1446222818/3169/965915/Snymok.png
Однако после fsutil hardlink create copy.txt test.txt картина в свойствах диска не изменилась и проводник показывал те-же 32,5МБ занятого места.
P.S. Win 8.1 Pro x32
Vadim Sterkin
Чтение этой https://www.outsidethebox.ms/17937/ статьи должно навести на кое-какие мысли
И это нормально же
Где показывал и как?
Alexandr Kovalchuk
Статью прочёл. Место смотрел как раз tcmd-шкой из-под админа. Как вернусь к рабочему компу попробую ещё fsutil-ом поиграться.
И до и после создания жесткой ссылки в свойствах диска картина была как по второй ссылке (занято 32,5, свободно 16,4). Хотя судя по статье ссылка должна была обсчитаться дважды^W^W^W
upd. Уже понял. свойства папки будет считать дважды, свойства диска показывает правильно
chukcha
«…Этот рисунок также хорошо подчеркивает разницу между жесткими и символическими ссылками. Первые являются полноценными файлами, а вторые больше похожи на ярлыки…»
Поясните пожалуйста, чем ярлыки отличаются от символических ссылок?
А также интересует вопрос, можно ли жестко ссылаться на файлы, находящиеся на другом разделе или даже жестком диске?
Vadim Sterkin
Ярлык — оболочка (explorer). Символическая ссылка — файловая система.
Жесткие ссылки работают только в пределах тома, об этом написано в сводной таблице в конце статьи.
chukcha
Ого как быстро =) спасибо, и еще интересует небольшой вопрос, про соединения.
Почему при открытии соединенной папки (например «Documents and Settings») пишет: «нет доступа к Documents and Settings.», ведь по идее должен быть переход в папку «Users»?
Vadim Sterkin
Еще быстрее будет, когда перед отправкой вопроса вы начнете:
• читать самостоятельно (хотя бы по диагонали) связанные статьи из блока «Вас также может заинтересовать» под статьей
• искать по блогу встроенным поиском или гуглояндексом, например, Documents and Settings
chukcha
ну такой ответ я могу получить где угодно =)
вот только названия статей не достаточно прозрачны …
Vadim Sterkin
https://www.outsidethebox.ms/12452/#_Toc302426011
chukcha
Эту статью я видел, спасибо, но ответа там не нашел.
Соединение «Documents and Settings» оказывается банально отличается правами доступа, там стоит запрет на «содержимого папки / чтение данных» для всех и владелец система, по этому и выдает отказ в доступе.
neqste neqste
Огромное спасибо. Знал о том, что существуют подобные средства в GNU/Linux, но не знал что есть и в Windows.
С каждым днем открываю постоянно для себя что-то новенькое в Windows, и не без вашей помощи (этого сайта).
Благодаря ссылкам, сократил на 30гб (на SSD) одну папку с игрой, и множеством ее модификаций, которые не работают все вместе в одной папке, но используют основные файлы игры (довольно крупные библиотеки).
Символьных ссылок на самые большие папки, а так же папки с множеством одинаковых файлов сделали свое дело.
До изменений, размер папки с играми 37ГБ, после 6.51ГБ. При этом все полностью работает как и нужно.
Сергей Золотарёв
Здравствуйте, Вадим!
Прочитал в статье на oszone (http://forum.oszone.net/thread-264099.html) вот такую информацию:
«Переносим полностью всю папку Installer на диск D: из c:\Windows. Чтобы оставить ссылку в папке Windows, вводим команду в командной строке:
mklink /j c:\windows\installer d:\installer
Теперь физически папка находится на диске D:, а в катлоге Windows есть ссылка на этот каталог и все программы прекрасно удаляются и нам хорошо.»
Это сработает? А с WinSxS?
Спасибо.
Vadim Sterkin
Сергей, с Installer это работает, но официально не поддерживается. С winsxs — я бы даже пробовать не стал, есть нормальная очистка, сжатие — читайте про CBS.
Flam
Спасибо за интересную статью!
После прочтения возник вопрос: возможно ли с помощью точки соединения или символьной ссылки создать ссылку на папку, чтобы введя в адресной строке адрес вида: «\\domain.local\dir» система обращалась к директории например: «C:\temp\drop\th»?
То есть чтобы был запрос на как-бы сетевой ресурс, но на самом деле обращение шло в локальную папку.
Спасибо.
Vadim Sterkin
Рад, что вам понравилось. Символические ссылки поддерживают UNC-пути, экспериментируйте.
Flam
К сожалению мне выдает вот такие ошибки, предполагаю что он пытается создать символьную ссылку внутри сетевой папки. Но мне необходимо, чтобы система обращалась как бы на сетевой диск, но не на него :(
Vadim Sterkin
Похоже на это
Flam
Соглашусь, задача не тривиальная, возможно невыполнимая, но тем не менее могла бы существенно сократить время, нервы и снизить влияние человеческого фактора :)
Огромное спасибо за ответы, за комментарии и вообще за блог, его очень интересно и познавательно читать :)
Vadim Sterkin
Не, я про то, что задача в принципе не описана, а предлагается только придуманное и не рабочее решение.
Спасибо, что читаете мой блог:)