Ogurok Alex |
10-06-2016 10:23 2641906 |
Пакетное присвоения файлам жестких ссылок
Здравствуйте! Помогите пожалуйста написать скрипт для того чтобы из текстового файла 1.txt в котором указаны пути к файлам можно было присвоить жесткие ссылки на файл путь к которому находятся в 2.txt
Не знаю или правильно объясняю но в итоге должно получится так что я нахожу поиском тотал коммандер файлы по маске,вывожу их на панель и после редактирования сохраняю в текстовый файл 1.txt после чего ищу путь к файлу который будет выступать исходников для файлов в данном списке и помещаю путь к нему в текстовый файл 2.txt после чего запускаю батник и он присваивает жесткие ссылки,чтобы когда произойдут изменения в файле исходнике менялись и файлы по жестким ссылкам.
|
greg zakharov |
10-06-2016 11:19 2641924 |
Как выглядят файлы 1.txt и 2.txt: просто списки или в одном список, а во втором данные по типу CSV, как данные из одного файла должны сопоставляться сданными из другого файла? Если язык решения любой, то подойдет ли PowerShell?
|
Цитата:
Цитата Ogurok Alex
Не знаю или правильно объясняю »
|
Ogurok Alex, попробуйте для начала хотя бы расставить запятые.
|
Ogurok Alex |
10-06-2016 15:17 2641997 |
Цитата:
Цитата greg zakharov
(Сообщение 2641924)
Как выглядят файлы 1.txt и 2.txt: просто списки или в одном список, а во втором данные по типу CSV, как данные из одного файла должны сопоставляться сданными из другого файла? Если язык решения любой, то подойдет ли PowerShell?
|
Было бы не плохо если бы это был бы bat файл.
Примеры списков отправлю вечером. Но в обоих файлах будут списки скопированные пути к файлам из тотал коммандера например.
Списки наверное придется делать в ручную в обеих файлах.
А что вы имеете ввиду на счет сопоставления? Простите за глупые вопросы, просто не знаю совсем ничего о программировании.
Цитата:
Цитата Iska
(Сообщение 2641982)
Цитата:
Цитата Ogurok Alex
Не знаю или правильно объясняю »
|
Ogurok Alex, попробуйте для начала хотя бы расставить запятые.
|
Спасибо за совет!)
|
greg zakharov |
10-06-2016 17:37 2642023 |
Ogurok Alex, простейшее сопоставление: первая строка файла А соответсвует первой строке файла В.
Цитата:
Цитата Ogurok Alex
Было бы не плохо если бы это был бы bat файл.
|
А если PowerShell скомбинированный с батом (проще хардлинки клепать)? Или все же чистый cmd?
|
Ogurok Alex |
11-06-2016 00:41 2642092 |
Цитата:
Цитата greg zakharov
(Сообщение 2642023)
Ogurok Alex, простейшее сопоставление: первая строка файла А соответсвует первой строке файла В.
А если PowerShell скомбинированный с батом (проще хардлинки клепать)? Или все же чистый cmd?
|
Мне главное чтобы получилось сделать,а на чем оно будет это уже упустим.
Я попытаюсь объяснить для чего я это хочу сделать.может вы мне по другому посоветует?
У меня есть файловое хранилище,в нем папки с пдф и тиф файлами. Каждая папка это изделие. Так вот,в этих папках хранятся одинаковые файлы но с измененным названием. Изделия набираются из набора чертежей.так же есть папка исходник,в которой работают конструктора. При изменении файлов в папке исходнике нужно чтобы менялись все связанные с ними файлы в папках изделиях.вопрос в том, как связать эти все файлы,темболее что они находятся под другим названием и у них общий только корень названия?
|
Я бы тупо использовал Far Manager для создания жёстких ссылок и с одновременным переименованием (Alt-F6).
Цитата:
Цитата Ogurok Alex
При изменении файлов в папке исходнике нужно чтобы менялись все связанные с ними файлы в папках изделиях. »
|
Вы ведь понимаете, что изменение в любом месте, а не только в «папке исходнике», отразится на содержимом.
|
Так вроде нельзя с одного существующего файла сделать ссылку на другой существующий файл? Проще наверное заново создать дерево проектов, в котором на мастер-каталог будут ссылаться файлы в папках-проектах. Или вообще создать связанные каталоги (в этом случае будут отличаться названия папок, а не файлов).
Допустим есть каталог master, создаем каталоги для проектов project_1 и project_2 и создаем в них жесткие ссылки на файлы в каталоге master
Код:
@echo off
setlocal
2>nul md project_1;project_2
pushd master
for %%i in (*.pdf *.tiff) do (
mklink /h "..\project_1\qwerty%%~xi" "%%i"
mklink /h "..\project_2\test%%~xi" "%%i"
)
popd
Но, как заметили выше, если один чел напортачит, то тогда пострадает весь проект, включая исходники.
|
Ogurok Alex |
11-06-2016 19:41 2642238 |
Цитата:
Цитата Iska
(Сообщение 2642114)
Я бы тупо использовал Far Manager для создания жёстких ссылок и с одновременным переименованием (Alt-F6).
Цитата:
Цитата Ogurok Alex
При изменении файлов в папке исходнике нужно чтобы менялись все связанные с ними файлы в папках изделиях. »
|
Вы ведь понимаете, что изменение в любом месте, а не только в «папке исходнике», отразится на содержимом.
|
Я пробовал фар менеджер,хорошая вещь. Одно плохо,что файлов десятки тысяч,и если я не найду выход как с этим можно пакетно бороться то прийдеться делать руками...
Цитата:
Цитата Foreigner
(Сообщение 2642140)
Так вроде нельзя с одного существующего файла сделать ссылку на другой существующий файл? Проще наверное заново создать дерево проектов, в котором на мастер-каталог будут ссылаться файлы в папках-проектах. Или вообще создать связанные каталоги (в этом случае будут отличаться названия папок, а не файлов).
Допустим есть каталог master, создаем каталоги для проектов project_1 и project_2 и создаем в них жесткие ссылки на файлы в каталоге master
Код:
@echo off
setlocal
2>nul md project_1;project_2
pushd master
for %%i in (*.pdf *.tiff) do (
mklink /h "..\project_1\qwerty%%~xi" "%%i"
mklink /h "..\project_2\test%%~xi" "%%i"
)
popd
Но, как заметили выше, если один чел напортачит, то тогда пострадает весь проект, включая исходники.
|
Дело в том что названия файлов внутри проектов меняют намеренно, им так удобнее потом искать...
Наверное все-таки придется делать руками.
Уважаемые,если все же у кого-то появятся еще какие-то мысли, рад буду выслушать!
Спасибо всем за помощь!
Если найду какое-то решение то обязательно напишу сюда.
|
Время: 23:23.
© OSzone.net 2001-