Надо найти 40 файлов и удалить!

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

MVV
Понятно, мне тоже показалось, что есть аналог от M$ для XP.
Но если невозможно решить задачу встроенными средствами, то лучше уж для всего использовать одну утилиту, а не несколько разных.
All
Убрал ".exe" из кодов батников.
Samwatas писал(а):Зачем же заниматься мазохизмом с батниками? Если у меня появится похожая задача, я просто возьму более совершенный инструмент (в качестве такового у меня пока выступает АвтоИт), с помощью которого можно легко и не напрягаясь сделать всё, что мне нужно будет. Так что от меня не стоит рассчитывать даже на $1 (не говоря уж о 10).
Ну почему же мазохизмом? Задача решается на бате встроенными средствами за несколько минут. Т.е. трудозатрат значительно меньше, чем на $1.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение 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 писал(а):то лучше уж для всего использовать одну утилиту, а не несколько разных.
Мне важно узнать какая из них быстрей справляется со своей задачей, а также хотелось иметь примеры с этими утилитами на будущее. В конечном итоге будет выбрана одна единственная.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Flasher писал(а):Для mklink путь-то всё равно прописывать надо.
Для XP без внешних утилит:

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

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

Сообщение b3ny »

объясните ламеру как как этот чудо скрипт запускать http://forum.wincmd.ru/viewpost.php?p=49569

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

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

' {C:\in.txt} {C:\out.txt} 
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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

Сообщение b3ny »

Flasher
спасибо разобрался. Только как сделась чтоб вложенные папки также проверялись?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

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

Приведи пример, что ты хочешь видеть от работы скрипта.
Нет, я не сплю. Я просто медленно моргаю.
b3ny
Сообщения: 3
Зарегистрирован: Чт дек 16, 2010 18:32

Сообщение b3ny »

Batya
Исходный список вида
aaa.mp3
bbb.mp3

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

Сообщение Flasher »

Tol!k
Если брать %F вместо маски.txt, то в некоторых ситуациях помимо ссылок на выделенные файлы создаёт ссылки для каких-то папок, имеющих часто несхожие с файлами имена.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

%F используется для конкретных имён (правильнее было бы использовать %L) или для масок (D:\*\имя.ext) ?
Ссылки на папки вроде бы вообще не должны создаваться,
м.б. создаётся ссылка на D:\ну\очень\длинный\путь\имя.ext ?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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

Сообщение 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
(если они существуют, конечно)

Для конкретных файлов нужен будет другой
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Действительно, есть такой момент с наличием одноимённых файлов.
Но тут скорей речь не о конкретных файлах идёт, а об обрабоке только выделенного, т.е. рекурсия по выделенным папкам, а не по всем в указанной.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Действительно, есть такой момент с наличием одноимённых файлов.
Ну, это какбы by design
Но тут скорей речь не о конкретных файлах идёт, а об обрабоке только выделенного, т.е. рекурсия по выделенным папкам, а не по всем в указанной.
Не понимаю. Если не маски и не конкретные файлы, то что?
Если нужны ссылки на папки, сразу пиши командную строку для выбранной утилиты, чтобы мне не изучать ключи
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Tol!k
При чём тут ссылки на папки? Рекурсия пофаловая и только. Т.е. всё то же самое, что делает батник, только с условием, что обработка ведётся, как я уже писал, по содержимому выделенных папок, а не по всему содержимому активной папки.
Ответить