View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Oct 01, 2010 01:15 Post subject: |
|
|
Tol!k
mklink.exe положил в одну папку с createlink.cmd, masks.txt в корень(место поиска) - результата в панели-получателе нет.
Serge Yolkin wrote: | На какую сумму я могу расчитывать за такой батник? | На такую. Хотя, Бог его знает, может Samwatas расщедрится . |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Fri Oct 01, 2010 06:59 Post subject: |
|
|
Попробуй прописать полный путь к mklink.exe или положить его в папку, прописанную в %path%
mklink.exe этот: Quote: | MKLINK 1.01 - (c) 2006 Christoph H. Hochstдtter and CNET Networks. |
Для Quote: | Hard link maker by Killer{R} | попробуй строку
Code: | ) do mklink.exe "%%f" "%~3\%%~nxf" |
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Oct 01, 2010 11:24 Post subject: |
|
|
Tol!k wrote: | Попробуй прописать полный путь к mklink.exe или положить его в папку, прописанную в %path% | Ага, так работает с переменной окр., %path% не подойдёт - нужна портабельность.
Строка c mlink от Killer-a не срабатывает.
Ещё бы хотелось сохранять структуру при этом.
Для ln.exe и junction.exe не получается то же самое сделать. Для ln синтаксис отличается только параметром -j вместо /h у mklink. У junction так:
junction <junction dir> <junction target dir>
либо
junction -d <junction dir> |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Fri Oct 01, 2010 11:46 Post subject: |
|
|
А почему бы не использовать утилиту от Microsoft, которая поставляется с Windows? mklink.exe есть и для XP, и для Vista/7, но в последних она включена в стандартную поставку, а в XP - нет.
Кстати, сразу проверьте программы на поддержку Юникода.
А вообще, написать такую утилиту, которая будет вызывать API-функцию, можно максимум за полчаса. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Oct 01, 2010 12:02 Post subject: |
|
|
MVV wrote: | А почему бы не использовать утилиту от Microsoft, которая поставляется с Windows? mklink.exe есть и для XP, и для Vista/7, но в последних она включена в стандартную поставку, а в XP - нет. | А потому что ты невнимательный. 1 2 |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Fri Oct 01, 2010 12:19 Post subject: |
|
|
Flasher wrote: | А потому что ты невнимательный. 1 2 | Я не понял, в чем именно я невнимателен. Ни один пост не указывает явно, что именно я написал не так. А написать подробнее ты не потрудился.
Если Tol!k хочет именно символические ссылки, он должен иметь ОС Vista или 7. Но в таком случае его система уже должна располагать утилитой mklink. Если же у него XP, то о символических ссылках можно только мечтать, так как система XP их просто не поддерживает. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10271 Location: Россия, Саратов
|
(Separately) Posted: Fri Oct 01, 2010 12:23 Post subject: |
|
|
MVV
Позволю себе напомнить, что термин "символическая ссылка" в разных операционных системах по милости MS означает разные вещи. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Oct 01, 2010 12:30 Post subject: |
|
|
MVV wrote: | А написать подробнее ты не потрудился. | Тружусь: ты спросил "а почему бы не использовать", я даю ссылки, где mklink от Microsoft и описывается, что в первом, что во втором случае. По-моему это понятно из постов и ссылки, ведущей на описание синтаксиса данной утилиты. Ничего не забыл?
MVV wrote: | Если Tol!k хочет именно символические ссылки, он должен иметь ОС Vista или 7. Но в таком случае его система уже должна располагать утилитой mklink. Если же у него XP, то о символических ссылках можно только мечтать, так как система XP их просто не поддерживает. | То, чего хочет Tol'k(а правильней сказать "что ему нравится"), - это отдельный вопрос (т.е. его личное дело), и он выпадает из обрисованной мной ситуации. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Fri Oct 01, 2010 12:57 Post subject: |
|
|
Flasher wrote: | Тружусь: ты спросил "а почему бы не использовать", я даю ссылки, где mklink от Microsoft и описывается, что в первом, что во втором случае. По-моему это понятно из постов и ссылки, ведущей на описание синтаксиса данной утилиты. Ничего не забыл? | Спасибо, я уловил мысль. Просто в последнем посте Tol!kа упоминались строки (c) 2006 Christoph H. Hochstдtter and CNET Networks и Hard link maker by Killer{R}, которые ну никак не могут иметь отношения к утилите от Microsoft.
Avada wrote: | MVV
Позволю себе напомнить, что термин "символическая ссылка" в разных операционных системах по милости MS означает разные вещи. | Хотелось бы взглянуть на официальный источник, использующий термин "символическая ссылка" ("symbolic link") в отношении точек соединения ("junction")... Ага, нашел у Руссиновича в описании Junction. А тут нашел упоминание термина "symbolic link" непосредственно от Microsoft, и в этом тексте у термина еще одно значение - то, которое сейчас принадлежит термину "mount point" ("точка монтирования").
Но замечу, что ребята в рамках данной темы обсуждали использование ссылок применительно к файлам, а точки соединения, некогда неправильно названные символическими ссылками, возможны только для каталогов - то есть, они использовали правильный термин. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Oct 01, 2010 13:45 Post subject: |
|
|
MVV wrote: | Просто в последнем посте Tol!kа упоминались строки (c) 2006 Christoph H. Hochstдtter and CNET Networks и Hard link maker by Killer{R}, которые ну никак не могут иметь отношения к утилите от Microsoft. | Хм.. Синтаксис тот же. Сравни со своей, пожалуйста, а то у меня сейчас негде.
Добавлено: хотя нет, это же Open Source, к Microsoft точно никакого отношения не имеет, хотя по функционалу ничуть не уступает аналогу.
Я забирал на Хабре сперва, где описание было утилиты от Microsoft, а оказалось автор не упомянул, что по ссылке утилита-двойник от немецкого прогера.
Но тут у меня другая мысль: дата создания утилиты - 2006 г., Висту начали продавать с февраля 2007-го, ссылка с оффсайта на утилиту мёртвая. Допустим ли вариант с перекупкой копирайта мелкомягкими? |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Fri Oct 01, 2010 17:35 Post subject: |
|
|
MVV wrote: | А почему бы не использовать утилиту от Microsoft... | Я и хотел её использовать, да никто её не даёт.
Flasher wrote: | Для ln.exe и junction.exe не получается то же самое сделать. |
Для директорий нужны другие ключи
Code: | MKLINK 1.01 - (c) 2006 Christoph H. Hochstдtter and CNET Networks.
...
/D Creates a symbolic link for a directory.
...
/J Creates a junction for a directory. | поэтому я отфильтровал только файлы.
Code: | 'for /f "usebackq delims=" %%a in ^("%~1"^) do @dir /ad/b/s "%~2\%%a"' | — это будут только директории. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Fri Oct 01, 2010 18:39 Post subject: |
|
|
Flasher wrote: | Ещё бы хотелось сохранять структуру при этом. |
Для файлов:
Code: | @echo off &chcp 1251 >nul
rem Создать в целевой папке ссылки с сохранением путей для файлов подходящих под маски
rem Параметры: маски.txt D:\где_искать\ D:\куда_складывать\
rem Пример параметров для TC: D:\маски_поиска.txt "%P" "%T"
setlocal enableextensions
set "pth=%~p2" &set "trg=%~3"
for /f "delims=" %%f in (
'for /f "usebackq delims=" %%a in ^("%~1"^) do @dir /a-d/b/s "%~2\%%a"'
) do call :p "%%f"
goto :eof
:p
set "p=%~p1"
call set "p=%%p:%pth%=%%"
if not exist "%trg%\%p%" md "%trg%\%p%"
mklink /h "%trg%\%p%%~nx1" %1
goto :eof
|
Last edited by Tol!k on Sat Oct 02, 2010 06:36; edited 1 time in total |
|
Back to top |
|
|
Samwatas
Joined: 12 Sep 2009 Posts: 95
|
(Separately) Posted: Sat Oct 02, 2010 00:58 Post subject: |
|
|
Serge Yolkin wrote: | На какую сумму я могу расчитывать за такой батник? |
Зачем же заниматься мазохизмом с батниками? Если у меня появится похожая задача, я просто возьму более совершенный инструмент (в качестве такового у меня пока выступает АвтоИт), с помощью которого можно легко и не напрягаясь сделать всё, что мне нужно будет. Так что от меня не стоит рассчитывать даже на $1 (не говоря уж о 10). |
|
Back to top |
|
|
Rodny
Joined: 24 Jan 2007 Posts: 949 Location: Могилёв, Беларусь
|
(Separately) Posted: Sat Oct 02, 2010 01:08 Post subject: |
|
|
Tol!k wrote: | Я и хотел её использовать, да никто её не даёт. |
Однако, команда есть, а файла mklink.exe нигде нет Win7 x32
Code: | C:\Windows\System32>mklink
Создание символической ссылки.
MKLINK [[/D] | [/H] | [/J]] Ссылка Назначение
/D Создание символической ссылки на каталог.
По умолчанию создается символическая ссылка на файл.
/H Создание жесткой связи вместо символической ссылки.
/J Создание соединения для каталога.
Ссылка Имя новой символической ссылки.
Назначение Путь (относительный или абсолютный), на который ссылается новая ссылка. |
Может она куда в cmd зашита? |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sat Oct 02, 2010 01:21 Post subject: |
|
|
Да, в Windows 7 mklink - это команда командного интерпретатора (если просмотреть содержимое CMD.exe в Юникоде, эта строка будет найдена среди кучи строк других команд). А даже если бы был экзешник, под Windows XP он бы не запустился - импортирует функции, отсутствующие в ядре XP (как минимум, функцию CreateSymbolicLinkW из библиотеки kernel32.dll). Мне почему-то казалось, что есть ее аналог для Windows XP (создающий точки соединения и жесткие ссылки).
Под XP в официальном дополнительном наборе инструментов есть утилита linkd. Также можно использовать утилиту junction от Марка Руссиновича. Но они умеют создавать только точки соединения для папок, жесткие ссылки на файлы ими не создать. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|