Страница 7 из 11

Добавлено: Сб окт 02, 2010 06:22
Tol!k
MVV
Понятно, мне тоже показалось, что есть аналог от M$ для XP.
Но если невозможно решить задачу встроенными средствами, то лучше уж для всего использовать одну утилиту, а не несколько разных.
All
Убрал ".exe" из кодов батников.
Samwatas писал(а):Зачем же заниматься мазохизмом с батниками? Если у меня появится похожая задача, я просто возьму более совершенный инструмент (в качестве такового у меня пока выступает АвтоИт), с помощью которого можно легко и не напрягаясь сделать всё, что мне нужно будет. Так что от меня не стоит рассчитывать даже на $1 (не говоря уж о 10).
Ну почему же мазохизмом? Задача решается на бате встроенными средствами за несколько минут. Т.е. трудозатрат значительно меньше, чем на $1.

Добавлено: Сб окт 02, 2010 08:05
Flasher
Tol!k писал(а):Для директорий нужны другие ключи
Для junction я написал, это первая строка, вторая - для файлов. Для ln такие:

Код: Выделить всё

Usage. ln [options] file|dir|UNCname new_name|new_dir|UNCname

These options are available
  -r, --recursive SRCPATH DESTPATH
  -e, --enum SRCPATH    Enumerate corresponding files under SRCPATH
  -j, --junction JUNCTION TARGETDIR
  -j, --junction JUNCTION
  -c, --copy SRCPATH DESTPATH
  -m, --move SRCPATH DESTPATH
  -q, --quiet           Operation with no output
  -h, --help            This help

Samples
  ln sourcefile.txt destination.txt
  ln --recursive x:\dir\dir2 x:\dir\newdir
  ln --recursive x:\dir\dir2 x:\anotherdir
  ln \\local_computer\sourcefile.txt x:\dir_on_local_computer\destination.txt
  ln \\local_computer\sourcefile.txt \\local_computer\destination.txt
  ln --recursive \\local_computer\sourcedir x:\dir\dir2
  ln --recursive \\local_computer\sourcedir \\local_computer\destdir\sample
  ln --enum x:\dir\dir2
  ln --copy x:\source\dir2 x:\dest\dir2
  ln --junction x:\source\junction x:\dest\junction target
  ln --junction x:\source\junction
Tol!k писал(а):Для файлов: ..
Здорово! Отличный инструмент получился.Изображение
Надеюсь, den114 это устроит. Изображение
MVV писал(а):Под XP в официальном дополнительном наборе инструментов есть утилита linkd. Также можно использовать утилиту junction от Марка Руссиновича. Но они умеют создавать только точки соединения для папок, жесткие ссылки на файлы ими не создать.
В прилагаемом бонусе всё это есть и не только. Изображение
Tol!k писал(а):Убрал ".exe" из кодов батников.
Для mklink путь-то всё равно прописывать надо.
Tol!k писал(а):Понятно, мне тоже показалось, что есть аналог от M$ для XP.
А чего вы так к мелкомягким прицепились? Они вам денег за промоушен не заплатят.) Есть утилита, которая вышла раньше, значит она не альтернатива, а наоборот, и ничем иным, как аналогом, её не назвать.
Tol!k писал(а):то лучше уж для всего использовать одну утилиту, а не несколько разных.
Мне важно узнать какая из них быстрей справляется со своей задачей, а также хотелось иметь примеры с этими утилитами на будущее. В конечном итоге будет выбрана одна единственная.

Добавлено: Вс окт 10, 2010 13:06
Tol!k
Flasher писал(а):Для mklink путь-то всё равно прописывать надо.
Для XP без внешних утилит:

Код: Выделить всё

rem mklink /h "%trg%\%p%%~nx1" %1
fsutil hardlink create "%trg%\%p%%~nx1" %1
Flasher писал(а):Мне важно узнать какая из них быстрей справляется со своей задачей
Думаю, все они используют API, т.ч. скорость будет одинакова и на порядок быстрее работы остального кода батника.

Добавлено: Чт дек 16, 2010 18:45
b3ny
объясните ламеру как как этот чудо скрипт запускать http://forum.wincmd.ru/viewpost.php?p=49569

делаю по инструкции с 1 страницы. :(
пути к файлам тоже вбил:

Код: Выделить всё

' {C:\in.txt} {C:\out.txt} 

Добавлено: Чт дек 16, 2010 18:57
Flasher
b3ny
Это закомментированная строка. В комментарии указаны параметры для кнопки либо em_ команды. Сам скрипт менять не надо. Скобки тут не нужны, могут понадобиться лишь кавычки при наличии пробелов в путях.

Добавлено: Пт дек 17, 2010 08:34
b3ny
Flasher
спасибо разобрался. Только как сделась чтоб вложенные папки также проверялись?

Добавлено: Пт дек 17, 2010 12:09
Batya
b3ny писал(а):Только как сделась чтоб вложенные папки также проверялись?
Не понял.
Я проверяю, существует ли файл или папка, представленные в первом файле-списке.
Второй список формируется из строк, по которым не существует ни файла, ни папки с таким путём.
Или у тебя в первом списке не полные пути, а только имена?

Приведи пример, что ты хочешь видеть от работы скрипта.

Добавлено: Пт дек 17, 2010 19:37
b3ny
Batya
Исходный список вида
aaa.mp3
bbb.mp3

Нужно просканить папку, включая вложенные, и найти файлы которые есть в списке, но отсутствуют в папках. Тот скрипт делает то что надо, но только в одной папке и еще прописывает пути к файлам в итоговом списке. Нужны только имена. Еще очень желательно чтоб в исходном списке можно было задать только начало имени.
Еще такой момент чтоб память жрало не сильно.)) По аналогии с этим скриптом. Он хоть работает медленно но все находит. А этот работает быстрее но грузит комп напрочь и через некоторое время вылетает ошибка out of memory. Список 8000, файлов порядка 40000. Запущен только тотал, памяти 512 :) - древний ноут.

Добавлено: Чт авг 11, 2011 22:23
Flasher
Tol!k
Если брать %F вместо маски.txt, то в некоторых ситуациях помимо ссылок на выделенные файлы создаёт ссылки для каких-то папок, имеющих часто несхожие с файлами имена.

Добавлено: Пт авг 12, 2011 00:54
Tol!k
%F используется для конкретных имён (правильнее было бы использовать %L) или для масок (D:\*\имя.ext) ?
Ссылки на папки вроде бы вообще не должны создаваться,
м.б. создаётся ссылка на D:\ну\очень\длинный\путь\имя.ext ?

Добавлено: Пт авг 12, 2011 01:03
Flasher
%L вроде вообще не работает. А %F, да, для конкретных имён из текущей папки, исходя из параметров. Всё логично.
Tol!k писал(а):ну\очень\длинный\путь
Нет, допустим курсор на "C:\Тест\ds-oitfiles-133032.pdf", здесь же есть каталог "2", создаются ссылки и на файл и на папку (не только на эту, причём).

Добавлено: Пт авг 12, 2011 01:16
Tol!k
Flasher писал(а):%F, да, для конкретных имён из текущей папки, исходя из параметров. Всё логично.
Нет. Тот бат делался именно для масок.
Т.е. если курсор на C:\Тест\ds-oitfiles-133032.pdf то будут созданы ссылки на
C:\Тест\ds-oitfiles-133032.pdf
C:\Тест\2\ds-oitfiles-133032.pdf
C:\Тест\2\3\ds-oitfiles-133032.pdf
C:\Тест\2\3\и\так\далее\ds-oitfiles-133032.pdf
(если они существуют, конечно)

Для конкретных файлов нужен будет другой

Добавлено: Пт авг 12, 2011 01:27
Flasher
Действительно, есть такой момент с наличием одноимённых файлов.
Но тут скорей речь не о конкретных файлах идёт, а об обрабоке только выделенного, т.е. рекурсия по выделенным папкам, а не по всем в указанной.

Добавлено: Вт авг 16, 2011 18:07
Tol!k
Действительно, есть такой момент с наличием одноимённых файлов.
Ну, это какбы by design
Но тут скорей речь не о конкретных файлах идёт, а об обрабоке только выделенного, т.е. рекурсия по выделенным папкам, а не по всем в указанной.
Не понимаю. Если не маски и не конкретные файлы, то что?
Если нужны ссылки на папки, сразу пиши командную строку для выбранной утилиты, чтобы мне не изучать ключи

Добавлено: Вт авг 16, 2011 18:13
Flasher
Tol!k
При чём тут ссылки на папки? Рекурсия пофаловая и только. Т.е. всё то же самое, что делает батник, только с условием, что обработка ведётся, как я уже писал, по содержимому выделенных папок, а не по всему содержимому активной папки.