Любой язык - Пакетное присвоения файлам жестких ссылок

Ответить
Аватара пользователя
Ogurok Alex

Любой язык - Пакетное присвоения файлам жестких ссылок

Сообщение Ogurok Alex »

Здравствуйте! Помогите пожалуйста написать скрипт для того чтобы из текстового файла 1.txt в котором указаны пути к файлам можно было присвоить жесткие ссылки на файл путь к которому находятся в 2.txt



Не знаю или правильно объясняю но в итоге должно получится так что я нахожу поиском тотал коммандер файлы по маске,вывожу их на панель и после редактирования сохраняю в текстовый файл 1.txt после чего ищу путь к файлу который будет выступать исходников для файлов в данном списке и помещаю путь к нему в текстовый файл 2.txt после чего запускаю батник и он присваивает жесткие ссылки,чтобы когда произойдут изменения в файле исходнике менялись и файлы по жестким ссылкам.
Аватара пользователя
greg zakharov

Re: Любой язык - Пакетное присвоения файлам жестких ссылок

Сообщение greg zakharov »

Как выглядят файлы 1.txt и 2.txt: просто списки или в одном список, а во втором данные по типу CSV, как данные из одного файла должны сопоставляться сданными из другого файла? Если язык решения любой, то подойдет ли PowerShell?
Аватара пользователя
greg zakharov

Re: Любой язык - Пакетное присвоения файлам жестких ссылок

Сообщение greg zakharov »

Цитата Ogurok Alex:



Не знаю или правильно объясняю
Любой язык - Пакетное присвоения файлам жестких ссылок




Ogurok Alex, попробуйте для начала хотя бы расставить запятые.
Аватара пользователя
Ogurok Alex

Re: Любой язык - Пакетное присвоения файлам жестких ссылок

Сообщение Ogurok Alex »

Цитата greg zakharov:



Как выглядят файлы 1.txt и 2.txt: просто списки или в одном список, а во втором данные по типу CSV, как данные из одного файла должны сопоставляться сданными из другого файла? Если язык решения любой, то подойдет ли PowerShell?



Было бы не плохо если бы это был бы bat файл.

Примеры списков отправлю вечером. Но в обоих файлах будут списки скопированные пути к файлам из тотал коммандера например.

Списки наверное придется делать в ручную в обеих файлах.

А что вы имеете ввиду на счет сопоставления? Простите за глупые вопросы, просто не знаю совсем ничего о программировании.




Цитата Iska:




Цитата Ogurok Alex:



Не знаю или правильно объясняю
Любой язык - Пакетное присвоения файлам жестких ссылок




Ogurok Alex, попробуйте для начала хотя бы расставить запятые.



Спасибо за совет!)
Аватара пользователя
greg zakharov

Re: Любой язык - Пакетное присвоения файлам жестких ссылок

Сообщение greg zakharov »

Ogurok Alex, простейшее сопоставление: первая строка файла А соответсвует первой строке файла В.


Цитата Ogurok Alex:



Было бы не плохо если бы это был бы bat файл.



А если PowerShell скомбинированный с батом (проще хардлинки клепать)? Или все же чистый cmd?
Аватара пользователя
Ogurok Alex

Re: Любой язык - Пакетное присвоения файлам жестких ссылок

Сообщение Ogurok Alex »

Цитата greg zakharov:



Ogurok Alex, простейшее сопоставление: первая строка файла А соответсвует первой строке файла В.

А если PowerShell скомбинированный с батом (проще хардлинки клепать)? Или все же чистый cmd?



Мне главное чтобы получилось сделать,а на чем оно будет это уже упустим.

Я попытаюсь объяснить для чего я это хочу сделать.может вы мне по другому посоветует?

У меня есть файловое хранилище,в нем папки с пдф и тиф файлами. Каждая папка это изделие. Так вот,в этих папках хранятся одинаковые файлы но с измененным названием. Изделия набираются из набора чертежей.так же есть папка исходник,в которой работают конструктора. При изменении файлов в папке исходнике нужно чтобы менялись все связанные с ними файлы в папках изделиях.вопрос в том, как связать эти все файлы,темболее что они находятся под другим названием и у них общий только корень названия?
Аватара пользователя
Iska

Re: Любой язык - Пакетное присвоения файлам жестких ссылок

Сообщение Iska »

Я бы тупо использовал Far Manager для создания жёстких ссылок и с одновременным переименованием (Alt-F6).




Цитата Ogurok Alex:



При изменении файлов в папке исходнике нужно чтобы менялись все связанные с ними файлы в папках изделиях.
Любой язык - Пакетное присвоения файлам жестких ссылок




Вы ведь понимаете, что изменение в любом месте, а не только в «папке исходнике», отразится на содержимом.
Аватара пользователя
Foreigner

Re: Любой язык - Пакетное присвоения файлам жестких ссылок

Сообщение Foreigner »

Так вроде нельзя с одного существующего файла сделать ссылку на другой существующий файл? Проще наверное заново создать дерево проектов, в котором на мастер-каталог будут ссылаться файлы в папках-проектах. Или вообще создать связанные каталоги (в этом случае будут отличаться названия папок, а не файлов).





Допустим есть каталог 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

Re: Любой язык - Пакетное присвоения файлам жестких ссылок

Сообщение Ogurok Alex »

Цитата Iska:



Я бы тупо использовал Far Manager для создания жёстких ссылок и с одновременным переименованием (Alt-F6).




Цитата Ogurok Alex:



При изменении файлов в папке исходнике нужно чтобы менялись все связанные с ними файлы в папках изделиях.
Любой язык - Пакетное присвоения файлам жестких ссылок




Вы ведь понимаете, что изменение в любом месте, а не только в «папке исходнике», отразится на содержимом.



Я пробовал фар менеджер,хорошая вещь. Одно плохо,что файлов десятки тысяч,и если я не найду выход как с этим можно пакетно бороться то прийдеться делать руками...




Цитата Foreigner:



Так вроде нельзя с одного существующего файла сделать ссылку на другой существующий файл? Проще наверное заново создать дерево проектов, в котором на мастер-каталог будут ссылаться файлы в папках-проектах. Или вообще создать связанные каталоги (в этом случае будут отличаться названия папок, а не файлов).





Допустим есть каталог 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

Но, как заметили выше, если один чел напортачит, то тогда пострадает весь проект, включая исходники.



Дело в том что названия файлов внутри проектов меняют намеренно, им так удобнее потом искать...

Наверное все-таки придется делать руками.



Уважаемые,если все же у кого-то появятся еще какие-то мысли, рад буду выслушать!

Спасибо всем за помощь!

Если найду какое-то решение то обязательно напишу сюда.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»