Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Пакетное присвоения файлам жестких ссылок (http://forum.oszone.net/showthread.php?t=315751)

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?

Iska 10-06-2016 14:13 2641982

Цитата:

Цитата 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?

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

Iska 11-06-2016 10:30 2642114

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

Цитата:

Цитата Ogurok Alex
При изменении файлов в папке исходнике нужно чтобы менялись все связанные с ними файлы в папках изделиях. »

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

Foreigner 11-06-2016 14:08 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

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

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.

Время: 23:23.
© OSzone.net 2001-