Софт вопросы

Вопрос о программе Total Commander

,

Софт вопросы

Дата публикации:

KUARBO, 8.11.2008 - 10:59

При попытке удалить файл при попытке удалить папку с помощью программы Total Commander выдается сообщение "не удается удалить файл. Сначала снимите защиту от записи". Как снять защиту от записи? unsure.gif

Демон, 8.11.2008 - 11:50

Выбрать файл или группу файлов, каталоги одновременно с файлами обрабатываться не будут, а дальше: Меню файл\изменение атрибутов и снять не нужные галки.

HugoBo-SS, 8.11.2008 - 14:16

Цитата | Quote(Демон @ 8.11.2008 - 11:50)
Выбрать файл или группу файлов, каталоги одновременно с файлами обрабатываться не будут, а дальше: Меню файл\изменение атрибутов и снять не нужные галки.
*


Бывает, не помогает. Посмотри:

logus, 8.11.2008 - 16:53

Было недавно такое. Сделал Свойства\сервис\проверка диска\ Ставишь две галочки и запуск. После проверки папка удаляется.Похоже могут быть битые сектора.

KUARBO, 8.11.2008 - 18:48

Цитата | Quote(Демон @ 8.11.2008 - 13:50)
Выбрать файл или группу файлов, каталоги одновременно с файлами обрабатываться не будут, а дальше: Меню файл\изменение атрибутов и снять не нужные галки.
*



Не помогло, может есть еще какие-нибудь варианты?

KLUCHICK, 8.11.2008 - 19:02

"Снимите защиту от записи" - Total таким образом сообщает вам, что файл в текущий момент используется другим приложением или процессом. Если уж так необходимо прибить его используйте програму Unlocker Заодно и узнаете, кто процесс юзает smile.gif

KUARBO, 9.11.2008 - 19:07

Цитата | Quote(KLUCHICK @ 8.11.2008 - 21:02)
"Снимите защиту от записи" - Total таким образом сообщает вам, что файл в текущий момент используется другим приложением или процессом. Если уж так необходимо прибить его используйте програму Unlocker Заодно и узнаете, кто процесс юзает smile.gif
*



Unlocker вещь конечно хорошая, но удалить надо 6 Гб(!), с этой программой у меня уйдет куча времени на удаление(не одни сутки наверное)

KLUCHICK, 9.11.2008 - 19:45

Тогда выход один - грузиться из под DOS и используя Volkov или Norton commander (имеется почти на всех установочных дисках с Windows) удалять в этом режиме. Что ж там такое неприкасаемое размеров в 6 г? blink.gif

-=Sherhan=-, 9.11.2008 - 19:59

Цитата | Quote(KLUCHICK @ 9.11.2008 - 19:45)
Тогда выход один - грузиться из под DOS и используя Volkov или Norton commander (имеется почти на всех установочных дисках с  Windows)  удалять в этом режиме. Что ж там такое неприкасаемое размеров в 6 г? blink.gif
*


Можно кинуть винт ведомым и загрузиться из-под другой Винды, оттуда и удалять всё, что нужно.

KUARBO, 9.11.2008 - 21:40

Цитата | Quote(KLUCHICK @ 9.11.2008 - 21:45)
Тогда выход один - грузиться из под DOS и используя Volkov или Norton commander (имеется почти на всех установочных дисках с  Windows)  удалять в этом режиме. Что ж там такое неприкасаемое размеров в 6 г? blink.gif
*



Из под DOS не возможно, т.к. у меня файловая система NTFS. А "непприкосаемое", это папка WINDOWS. У меня стоит параллельно 2 ОС ХР и Vista, так вот вистовская папка WINDOWS и не удалялась(из под ХР разумеется) и она весила 6 Гб. Но с проблемой я справился, причем без использования каких-либо программ. Оказалось, что все дело в правах доступа. rolleyes.gif

nokeMoH, 27.02.2018 - 21:29

Добрый вечер форумчанам.. Появилась у меня небольшая необходимость, отловить определённую группу файлов через их поиск, но не по их целевому Имени, а по их Сигнатуре, то есть по их Первым Трём Байтам (которые можно увидеть в любом HEX редакторе).. К примеру мне нужно найти все файлы с расширением *.exe, для этого случая нужно сделать поиск по первым трём байтам в файлах, и найти все совпадения для
Code
4D 5A 50


Решение для такой странной задачи тоже нашёл, с помощью Total Commander, но разобраться как это всё работает так и не смог, прошу у Вас пожалуйста помощи.. Вот что я нашёл..

» Небольшой скрипт, который может быть полезен для поиска файлов с определенной сигнатурой (первые байты в файле). «


Так и не понял что с этим нужно сделать, другие источники смотрел, всё равно не ясно, и *.vbs из этого создавал, но на Панель Инструментов тот.командера ни как не перетягивается..

Подскажите пожалуйста что я упустил ?..
Win8 x64; Total Commander Portable

Henry723, 27.02.2018 - 22:11

Цитата | Quote(nokeMoH @ 27.02.2018 - 21:52)
К примеру мне нужно найти все файлы с расширением *.exe

Я совсем не знаток Total Commander, но поиск по расширению файла встроенная функция в этой программе. Можно посмотреть здесь например



И зачем редактор ?

nokeMoH, 27.02.2018 - 22:19

Да мне совсем не расширения нужно в файлах искать, это был просто пример.. Не у всех нужных мне файлов есть расширения, и таких файлов достаточно много, в ручную проверять каждый файл по отдельности это очень трудно.. А таким способом я планирую найти сразу все необходимые мне файлы, и при необходимости, к ним можно будет вернуть расширения чтобы больше они не терялись..

Henry723, 27.02.2018 - 22:37

Правильная постановка задачи - 50% ее решения... biggrin.gif

Попробуй разбить задачу на несколько частей - по расширениям например...
Потом можно каждую часть собрать в архив типа rar и устроить поиск внутри архива по заданным
критериям...
Можно применить программу типа Free Hex Editor Neo и воспользоваться ее встроенным поиском,
или найти аналогичную...

kostya-chist, 27.02.2018 - 22:37

Цитата | Quote(nokeMoH @ 27.02.2018 - 21:52)
Так и не понял что с этим нужно сделать, другие источники смотрел, всё равно не ясно, и *.vbs из этого создавал, но на Панель Инструментов тот.командера ни как не перетягивается..

Подскажите пожалуйста что я упустил ?..
Win8 x64; Total Commander Portable

*


А не пробовали обычный поиск тотала, с установленной галкой "С текстом" (куда вводите любые символы) + галочку поставить на НЕХ-код
Ваши сочетание символов у меня тотал находит.

P.S. Если я правильно понял автора, то он "потерял" расширение и патается таким способом определить тип файла

Henry723, 27.02.2018 - 23:01

Цитата | Quote(kostya-chist @ 27.02.2018 - 23:00)
Если я правильно понял автора, то он "потерял" расширение и патается таким способом определить тип файла
*


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

Или я не прав ?

nokeMoH, 27.02.2018 - 23:27

Обычный поиск тут не сможет помочь, так как нужно поискать и найти файлы среди тех, что без расширения.. Всё это можно проделать и вручную, просматривая файлы в HEX редакторе, первые три буквы, каждый файл, но времени столько лишнего нету, файлов очень очень много.. С установленной галкой HEX-код, тоже вряд ли получиться, так как мне нужно совпадение исключительно только по первым трём байтам, а не всего файла в целом.. Да, у меня каким-то образом пропали расширения у многих файлов, и я хочу их вернуть, я подключил старый HDD, не знаю как они могли пропасть но их нету, и вирусов нету тоже, сами же файлы все в рабочем состоянии..

smile.gif тут столько любителей тотала живёт, на многие вопросы оконного сёрфинга всегда советовали именно этот менеджер, не мне, многим на разные вопросы, сейчас думал как быстро подскажут что надо сделать)..

Я просто не разбираюсь в этой программе, а тот код, это или Плагин или Скрипт к тоталу, как его прикрутить к самому менеджеру так и не ясно..

Henry723, 27.02.2018 - 23:58

Давай еще раз...

У тебя есть первоначальный каталог - допустим, 1000 файлов с какими-то расширениями...
Ты его открываешь в левой части тотал командера и делаешь выборку, скажем, по расширению exe...
Допустим, это 200 файлов...
Теперь в правой части открываешь всю базу файлов, которую тебе надо проверить, допустим это 2000 файлов, делаешь в ней выборку по тому же расширению exe и у тебя находится условно 300 файлов...
Потом в меню находишь команду сравнить каталоги и смотришь это сравнение - все, что одинаково ,
допустим 180 файлов - вырезаешь и переносишь куда-то (третий диск, папку, каталог), главное, убираешь из поиска с правой части ...
Таким образом, по расширению, по имени или части имени можно отфильтровать большую часть файлов...
Оставшиеся файлы без расширения нужно искать в первоначальном бэкапе например по имени или по буквам имени типа A*, *A* и сравнивать опять же командой сравнения каталогов ...

Чем меньше будет файлов в искомой базе , тем быстрее и проще найти те файлы, которые неопознанные или без расширения совсем...

Потом когда останутся совсем никак неидентефицируемые - вот только тогда применять HEX редакторы и поиск по байтам ...

Это примерный алгоритм того, насколько я понял задачу...

nokeMoH, 28.02.2018 - 0:34

smile.gif Henry723, я понимаю о чём вы говорите, но про бекап я ни чего не говорил, мне сравниваться не с чем, у меня всё в единичных экземплярах, все файлы без расширения.. Много много файлов, в одной кучке и без расширения и без бекапа прежних валидных версий.. Мне всего лишь нужно сделать выборку файлов используя какой-нибудь способ, чтобы сравнить их между собой по первым трём байтам, и файлы с одинаковыми первыми тремя байтами переместить в одну папку, файлы с другими одинаковыми первыми тремя байтами в другую папку.. По моему запросу в яндекс, подобную функцию поиска увидел только у тотал.командер, и то, с помощью непонятного для меня Плагина или Скрипта для него, я так и не понял что это был за код, и не совсем понимаю как его использовать для этих целей..

HugoBo-SS, 28.02.2018 - 1:15

Цитата | Quote(nokeMoH @ 27.02.2018 - 23:50)
Обычный поиск тут не сможет помочь, так как нужно поискать и найти файлы среди тех, что без расширения..
*


А какая разница?
Ищите сигнатуры во всех файлах:
В поле "искать файлы": *.*

И по-признакам последовательности составьте для поля "с текстом" регулярное выражение:

nokeMoH, 28.02.2018 - 8:44

HugoBo-SS, блин, мне кажется меня не понимают... Так, мне нужно... Найти все файлы, где есть совпадения с поисковым запросом.. Поисковый запрос в свою очередь, должен быть нацелен на поиск файлов по их Сигнатурам.. Поскольку, планируется пересмотреть все файлы, пусть это даже будут файлы и с расширением и без него, это уже совсем не важно, все файлы без исключения, к ним ко Всем нужно будет заглянуть внутрь и увидеть их первые три байта как HEX-код, и на этом этапе, сравнивать этот HEX-код с тем, что меня интересует.. Если совпадение есть - уберу найденные файлы в сторонку.. Для реализации подобной задачки, это процедура должна выглядеть примерно следующим образом, как я это понимаю..

» Спойлер «


Безусловно, я буду искать нужные мне сигнатуры во Всех файлах при помощи поискового запроса *.*, сюда попадут и файлы с расширением и без него, пусть так, но для этого, нужно научить Total Commander искать совпадения только по Первым трём Значениям, а не всему файлу сразу.. Для этих целей кто-то придумал этот Код, который каким-то образом нужно суметь прикрутить в Total Commander, и тогда Total Commander научиться искать файлы именно таким образом, как и нужно (только по первым трём байтам)..

zoog, 28.02.2018 - 9:24

А Вы почитайте по RegExp, там есть способ определения начала строки - то есть как раз 1е 3 байта + возможно, случайно где найдётся такое ж, но это потом легко отделить.

AquaTour, 28.02.2018 - 10:41

проще написать программку...нужен просто список файлов с абсолютными путями?

Можно посмотреть и в сторону поиска регулярных выражений, но там есть ограничение на поиск символа с кодом 0

HugoBo-SS, 28.02.2018 - 15:08

Цитата | Quote(nokeMoH @ 28.02.2018 - 9:07)
мне кажется меня не понимают
*



Да все прекрасно понимают.
Цитата | Quote(nokeMoH @ 28.02.2018 - 9:07)
3). Чтобы ограничить поиск HEX-кода только тремя первыми байтами, необходимо дополнение для Total Commander     а). Таким дополнением может послужить Плагин или Скрипт для Total Commander
*


Нет никакой необходимости в допплагинах

Повторю себя и других советчиков в теме: пишите регулярное выражение и вставляйте в допвозможностях поиска:вполне внятно описано в руссифицированной справке коммандера ( по F1) ну и , к примеру, тут:
Цитата | Quote(zoog @ 28.02.2018 - 9:47)
почитайте по RegExp
*

Коммандер как раз и его использует biggrin.gif

Вот ещё возможная полезная ссылка по работе c регулярками:

zoog, 28.02.2018 - 17:29

Цитата | Quote(HugoBo-SS)
Коммандер как раз и его использует

Да он и сам это знает, если поиском пользовался.

AquaTour, 28.02.2018 - 20:23

Прежде чем советовать, хорошо бы самостоятельно ознакомиться со своими ссылками smile.gif
regex в тотале может определить начало файла, а не строки?

kostya-chist, 28.02.2018 - 21:10

Цитата | Quote(nokeMoH @ 28.02.2018 - 9:07)
» Спойлер «


Для начала требуется установить в тотал этот плагин _http://www.totalcmd.n...cript_wdx.html (только для 32х битной версии)
//Надеюсь инструкцию по установке плагина писать не надо? wink.gif
Зайти в поиск и перейти на вкладку "С плагинами", именно там, в выпадающем списке вы его и увидите.

nokeMoH, 1.03.2018 - 17:23

Цитата | Quote(kostya-chist @ 28.02.2018 - 21:33)
//Надеюсь инструкцию по установке плагина писать не надо? wink.gif
Зайти в поиск и перейти на вкладку "С плагинами", именно там, в выпадающем списке вы его и увидите.

Вот если бы Вы не написали про это, у меня бы ни чего самостоятельно не вышло, хотя половину дня пришлось делать так, чтобы в Поиске по Alt+F7 на вкладке "С плагинами" необходимые плагины появились, их сначала нужно было добавить в программу, Тотал Командер это не моя стихия, оказалось, нужно эти плагины было добавить через меню Конфигурации => Настройки => Плагины ,, всего то половина дня на это ушло, чтобы это понять, точнее найти инструкции по добавлению плагинов..

Помогите пожалуйста разобраться дальше, с помощью интернет поискового запроса "Script Content Plugin x64", меня перекинуло вот сюда

я не профи в таких тонкостях, но с помощью кривого google-переводчика удалось понять что-то про поддержку *.vbs сценариев, как раз наверное про поддержку того, что мне нужно.. Изначально вопрос был связан с этим Кодом..

» Небольшой скрипт, который может быть полезен для поиска файлов с определенной сигнатурой (первые байты в файле). «

» А вот как выглядят у меня эти два плагина «


Если всё изложенное в рамке CODE скопировать в Текстовый Документ, у которого потом впоследствии расширение поменять с *.txt на *.vbs ,, предполагаю что мы должны получить скрипт, который подходит для работы с этим плагином Script Content Plugin 0.2.0.2..

Плагин в Тотал Командер установлен, скрипт *.vbs есть, что нужно сделать дальше, ни как совсем не пойму, помогите пожалуйста..


p.s.: установил Total Commander x32 и добавил эти два плагина, о которых писал выше, в надежде на то, что хотя бы одному из них удастся сделать то, что мне нужно..

HugoBo-SS, 1.03.2018 - 18:42

Цитата | Quote(AquaTour @ 28.02.2018 - 20:46)
regex в тотале может определить начало файла, а не строки?
*

Первое вхождение в файл ( любой) - не начало ли файла ?..

Цитата | Quote(nokeMoH @ 1.03.2018 - 17:46)
их сначала нужно было добавить в программу
*



Любые плагины ( если они правильно упакованы в zip, а, как правило, это так) устанавливаются самим тоталом при двойном( одинарном - если настроено подобное поведение) клике по нему, с предупреждениями ( на случай случайного нажатия). Да, и в справке тотала( по F1) описано и это. Рекомендую использовать её, до всяких поисков ответов на вопросы в интернете; она достаточно подробна, мнформативна и хорошо структурирована.
По данному плагину есть readme ( в папке плагина) c краткой инструкцией на русском. smile.gif

Вам, в целом, нужно что? Нахождение файлов с потерянными расширениями?

AquaTour, 1.03.2018 - 20:26

Цитата | Quote(HugoBo-SS @ 1.03.2018 - 19:05)
Первое вхождение в файл ( любой) - не начало ли файла ?..
*


я не знаю что такое "первое вхождение в файл".
если искать по последовательности байт, то установка ^ перед искомой последовательностью может дать ложные совпадения, достаточно где либо в файле встретиться искомой последовательности и коду разрыва строки перед ней

nokeMoH, 1.03.2018 - 20:39

Цитата | Quote(HugoBo-SS @ 1.03.2018 - 19:05)
Любые плагины ( если они правильно упакованы в zip, а, как правило, это так) устанавливаются самим тоталом при двойном( одинарном - если настроено подобное поведение) клике по нему, с предупреждениями ( на случай случайного нажатия).
Не проверял такой способ адаптации плагинов в тотал.командер, и наверное не стану, с трудом дался первый рабочий метод добавления плагина в тотал, которому пришлось научиться с нуля ни чего не зная, второй уже не осилю, буду пользоваться первым удачным способом, который у меня получился, я извлекал ZIP и на выходе получил обычную папку с файлами, а далее через настройки тотал.командера указал путь к плагину, так он и добавился, а речь видимо шла о двойном клике по ZIP непосредственно из самого менеджера тотал.командера, чтобы он подхватил это нажатие и сам установил плагин как нужно.. Это мне сейчас стало понятно, так как с первого раза прочитав я не понял, как двойной клик по ZIP установит плагин сразу в тотал.командер, видимо этот дабл клик нужно сделать прямо в менеджере, но уже не это важно, плагины с танцами, но добавлены, ух..

smile.gif а тут, мне нужно ещё разочек давайте поясню вот что.. Только на этот раз постараюсь максимально наглядно пояснить чего я хочу добиться, с примерами..

К примеру у нас есть 4 файла (текстовый документ), это их скрины..

» .txt «


А вот так, эти 4 файла выглядят, если их открыть при помощи любого HEX редактора..

» HEX редактор «


Как от сюда можно увидеть, у первых трёх файлов, начало документа совпадает, а именно - они все начинаются со "слов" abc.. У четвёртого файла это "слово" (совпадение) тоже есть, но находиться оно это совпадение не с начала файла, а спустя некое количество символов (байт)..

Мне нужно:

среди огромной своры файлов, найти все файлы, с расширением и без, у которых НАчало ФАйла (первые три байта), исключительно ПЕРВЫЕ три байта, равны в данном случае abc, то есть найти все файлы, текст которых содержит значение abc, но исключительно только в Первых трёх байтах, и только в них.., следовательно, 4-ый файл как результат поиска сюда не подходит, потому что у него это совпадение не лежит в диапозоне с 1 по 3 байт включительно..

Существуют утилиты, которые могут найти документ по его содержимому, с помощью таких утилит найти файл содержащий "слово" abc не получиться, так как подобные инструменты не ограничиваются объёмом просматриваемого документа, то есть не могут просканировать его половину, одну треть или только к примеру 15 первых байт, а будут искать запрос до той поры, пока не просканируют весь документ полностью, - это не нужно - только первые три байта..


В данном случае, которого я хочу добиться, если бы механизм работал, и Тотал.Командером с нужным плагином было бы можно ограничить поиск "текста" внутри файла, то есть заставить его сравнивать поисковый запрос только с ПЕРВЫМИ тремя байтами во всех файлах, и если в первых ТРЁХ байтах совпадения нету, не искать дальше по содержимому файла, - а переходить к следующему и так же, смотреть только первые три БАЙТА, опять нету совпадения, переходить к следующему файлу и сканировать его, и так далее далее далее... и находить только те файлы, где есть Совпадения исключителньо только с первыми тремя байтами относительно поискового запроса пользователя..

Нюанс: поисковый запрос будет записан не в виде abc, а в виде его HEX кода, то есть в случае, когда нам будет нужно найти все файлы, чьи ПЕРВЫЕ ТРИ БАЙТА равны abc, мы в поисковом запросе напишем 61 62 63 (смотреть второй спойлер)

AquaTour, 1.03.2018 - 21:12

nokeMoH, еще раз повторю, если нужен просто список файлов с путями, то можно написать элементарную программку, это самый простой способ ну или PowerShell скриптик накрайняк

nokeMoH, 1.03.2018 - 21:22

AquaTour, нужно найти все файлы, у которых ПЕРВЫЕ ТРИ БАЙТА будут совпадать с поисковым запросом Строкой Поиска..

Список файлов с путями разумеется в конце процедуры должен быть, это ведь поиск, где-то и как-то должно быть отображено сколько, и какие файлы были найдены в результате поиска файлов..

AquaTour, 2.03.2018 - 1:23

nokeMoH, про 3 байта я понял с самого начала, задача решается кодом в 20 строк

nokeMoH, 2.03.2018 - 8:44

Цитата | Quote(AquaTour @ 2.03.2018 - 1:46)
nokeMoH, про 3 байта я понял с самого начала, задача решается кодом в 20 строк
Кодом в 20 строк плагина для Тотал.Командера или отдельного приложения ?, хотя путь к конечной цели не так важен, как результат самой цели, если есть возможность её достич любым из доступных способов.. Не знаю про какие 20 строк Вы говорили AquaTour, но если это не слишком трудно, не смогли бы Вы помочь чем сможете ?..

забегая немного вперёд, не уверен в каком из будущих это будет полезным, но пригодиться когда-нибудь сможет.. Если у Вас получиться, можно пожалуйста оставить возможность поиска не только по первым трём байтам, но и по любому их количеству ?.. То есть если вдруг, кому-то когда-то понадобиться так же как и мне, воплотить эту чудную задачу в жизнь, только в том случае, будет нужна возможность поиска файлов по первым 10 или 25 байтам к примеру, чтобы осталась возможность у этих 20 строк Надстройка, где можно было бы для себя настроить схему поиска, не по первым трём байтам например, а по первым 34 к примеру или любое другое количество..

и если снова будет не трудно, на будущее, оставить надстройку для выбора диапазона поиска, то есть если ищем совпадение к примеру определённых 10 байт в файле со Строкой Поиска, то чтобы этот поиск происходил не с 1 по 10 включительно байт каждого файла, а допустим с 31 по 40 включительно (то есть тоже 10 байт, но со смещением в 30 байт включительно от начала файла)..

нижнее не так важно как верхнее, хотя и тоже могло оказаться быть полезным..

AquaTour, 2.03.2018 - 12:00

» Нажмите, для открытия спойлера | Press to open the spoiler «

сохранить в файл с расширением cs, например program.cs
скомпилировать c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe Program.cs
Запускать лучше с перенаправлением вывода в файл
program.exe c:\target_dir > filelist.txt
искомая последовательность задается в массиве pattern, можно менять и коды и количество элементов сигнатуры
смещение задается через offset

zoog, 2.03.2018 - 17:06

Цитата | Quote
если искать по последовательности байт, то установка ^ перед искомой последовательностью может дать ложные совпадения

Да, я писал, что это потом надо будет вручную разгрести.
Сейчас задал поиск 4байт среди 6ГБ файлов, - найдено в 3х.

nokeMoH, 2.03.2018 - 20:57

Цитата | Quote(AquaTour @ 2.03.2018 - 12:23)
...

Большое спасибо, нашёл статью как скомпилировать файл, на выходе получил *.exe и Вашей предложенной командой пытался получить необходимый список program.exe c:\target_dir > filelist.txt, что-то не так sad.gif

» Spoiler «


можно пожалуйста несколько вопросов ?..

(1). Что это такое ?..

» Вот это «

если мне нужно найти "слово" abc, HEX редактор его видит как 61 62 63, я должен записать вот так ?..

» вот так «


(2). Как утилита определяет, в какую директорию она будет записывать файл filelist.txt ?..

(3). Как утилита определяет с какой директории нужно сделать список файлов ?..

AquaTour, 2.03.2018 - 21:36

nokeMoH, отредактировал пост выше, добавил обработку ситуации, когда программа не может получить доступ к папке.
1) правильно
2) как и все в винде, если не указан абсолютный путь, то будет вычисляться относительный на основании рабочего каталога, если запускаете в консоли, то это текущий каталог и файл вывода будет находиться рядом с программой.
3) дык первый параметр которой передаем программе и есть целевая директория.

nokeMoH, 2.03.2018 - 21:54

А где и как нужно указать абсолютный путь для обработки файлов программой ?..

допустим

утилита program.exe находиться по адресу C:\Soft, а нужно получить список файлов из каталога C:\Files, как быть тогда, это возможно такое ?, если возможно, то где в таком случае будет сохраняться файл filelist.txt ?..



p.s.: а зачем нужно это ?..

» Spoiler «

Ноль икс так необходим что без него нельзя записать этот код ?, он может запутать лишний раз мешая визуализировать полезную информацию..

AquaTour, 2.03.2018 - 22:09

nokeMoH,
Утилита работает только с абсолютными путями к целевой папке.
1) Открыли консоль, перешли в папку C:\Soft, запускаем program.exe C:\Files > filelist.txt
Результат: список нужных файлов в каталоге C:\Files, filelist.txt будет в папке C:\Soft
2) Открыли консоль, перешли в папку C:\Soft, запускаем program.exe D:\Files > C:\Logs\filelist.txt
Результат: список нужных файлов в каталоге D:\Files, filelist.txt будет в папке C:\Logs

0x нужен, чтобы значения воспринимались как шестнадцатиричные, можете убрать, но тогда придется задавать десятичный код символа, на ваш выбор, можно даже в перемешку писать smile.gif

nokeMoH, 2.03.2018 - 23:08

Ура ура, всё завелось и работает как нужно, с этим уже можно жить, спасибо большое smile.gif

можно пожалуйста узнать несколько уточнений...

(1). Возможно ли как-то обойти подобное ограничение ?.. если нет, в моей ситуации это не так сильно страшно, можно и пренебречь, просто когда-нибудь, в какой-нибудь параллельной вселенной... возможно.., вдруг это окажется быть не пригодным..

» Spoiler «


(2). Как я понял, каждый раз для новых значений поиска, нужно перебивать значения в Program.cs и компилировать уже в новый program.exe файл с изменёнными данными, и далее всё те же команды для вывода результатов поиска в файл..

А нельзя ли этот процесс как-то более или менее автоматизировать ?, или эта уже совсем другая песня другого уровня программирования ?.. Я понимаю конечно что можно всё сделать за один подход через *.BAT файл, примерно вот так вот..

» BAT «


но то что в ручную редактировать файл *.CS необходимо, это немного напрягает, хотя как я уже и говорил, жить можно.. Придумать какое-нибудь GUI окошко это очень тяжело ?.. с двумя полями, -- что нужно поискать, -- сколько нужно отступить .... Для одной единственной процедуры такая реализация была бы конечно бессмысленной, раз уж нету аналогичных подобной этой софтинке, вот я и подумал, а что если... вдруг... на Будущее..

AquaTour, 2.03.2018 - 23:32

1) если установлен .NET 4.6.2 или выше, то можно попробовать создать файл app.config с содержимым из этого поста

файл должен лежать рядом с программой.
2) Можно сделать чтобы параметры принимались через командную строку
например запуск будет таким program.exe 0 616263 C:\Files > filelist.txt
т.е. program.exe смещение паттерн путь

nokeMoH, 2.03.2018 - 23:41

smile.gif про пункт номер один, я совсем ни чего не понял, зачем, для чего, и тем более всё на англицком.. Кривой гугл-перевод сделает только ещё хуже..

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

p.s.: доброй ночки и приятных кошмариков, вынужден ложиться, до завтра)

AquaTour, 2.03.2018 - 23:49

1) первый пункт включит поддержку длинных имен файлов
2) чтобы программа начала делать что то такое, что не может вы данный момент, ее код надо менять.

nokeMoH, 2.03.2018 - 23:59

Не могу у человека отнять его заслуженный сон, пожалуйста, если будет свободное время и желание, попробуйте сделать так, как Вы предложили, очень сильно был бы Вам благодарен..

» Нажмите, для открытия спойлера | Press to open the spoiler «


Я ни чего на этот раз не перепутал, вот этот вот текст должен быть под именем app.config, а сам файл должен просто лежать в папке рядом с program.exe ?..

» app.config «

AquaTour, 3.03.2018 - 0:04

Цитата | Quote(nokeMoH @ 3.03.2018 - 0:22)
вот текст должен быть под именем app.config, а сам файл должен просто лежать в папке рядом с program.exe
*


верно

отредактировал пост с программой
сейчас работает так
program.exe 0 4D5A90 D:\Soft
оффсет паттерн путь

nokeMoH, 3.03.2018 - 13:39

Это лайк, господа.. На столько идеально работает, что лучше уже и быть не могло.. AquaTour спасибо большое и ещё раз спасибо.. В процессе тестирования, столкнулся с небольшими проблемками, но интернет-сёрфинг помог их решить.. а именно:

1). Созданный *.BAT файл не работал с Пробелами..
2). Созданный *.BAT файл не работал с Русскими именами..
3). Когда первые два пункта были налажены, CMD окно всё равно отображало Кракозябы вместо русских букв..

Решение было таким:

1). Любые пути нужно взять в "Двойные ковычки"
2). В начало *.BAT файла нужно было добавить chcp 1251 >nul
3). Решился вопрос следующим образом..

» CMD «


В результате конечный готовый для работы *.BAT файл принял следующий вид..

» Program.bat «



-----
-------
--------
----


Файл app.config который лежит в той же папке что и program.exe, в процесс активации работы программы путём запуска *.BAT файла двойным кликом по нему, не избавляет от Слишком длинный путь или имя файла. Полное имя файла должно содержать меньше 260 знаков, а имя каталога - меньше 248 знаков.

Этот файл app.config не нужно ни как задействовать внутри *.BAT файла или внутри program.exe чтобы он как-то смог повлиять на процесс работы утилиты ?.. Или необходим какой-нибудь другой манёвр ?.. если что-то ещё предпринять возможно..

Скачал и установил вот этот вот файл, размер которого 65.55 MB (68742112 byte)


Win8 Профессиональная x64

AquaTour, 3.03.2018 - 16:33

nokeMoH, чтобы было получше с русскими буквами, можно попробовать использовать PowerShell

по длинным путям, проверил - у меня тоже не сработало.
Могу предложить два варианта:
1) Собирать под фреймворк 4.6.2 но как это сделать не устанавливая доп софт я не знаю, так что могу отдать исходники и уже собранную версию
2) можно задействовать доп библиотеку, но тогда утилита будет состоять не из одного файла.

первый вариант я опробовал, у меня работает нормально.

nokeMoH, 3.03.2018 - 16:52

Цитата | Quote(AquaTour @ 3.03.2018 - 16:56)
nokeMoH, чтобы было получше с русскими буквами, можно попробовать использовать PowerShell

В принципе, с русскими буквами в *.BAT чате уже всё в порядке, на процесс работы это ни как не влияло, нужный список создавался и конструировался должным образом, просто в процессе обработки, отображение информации в *.BAT окошке немного ломало глаза из-за крякозяб, мелочь, а приятно, и вроде бы ситуацию уже удалось стабилизировать..

Цитата | Quote(AquaTour @ 3.03.2018 - 16:56)
1) Собирать под фреймворк 4.6.2 но как это сделать не устанавливая доп софт я не знаю, так что могу отдать исходники и уже собранную версию
2) можно задействовать доп библиотеку, но тогда утилита будет состоять не из одного файла.

Лишь бы работало.. Не совсем понятно что имеется в виду под доп.софтом, сам фреймворк 4.6.2 или что-то другое ещё к нему дополнительное..
А второй вариант разве не получиться полегче ?, с точки зрения пользователя, наверное полегше будет добавить нужную библиотеку в каталог с программой, чем устанавливать фреймворк 4.6.2 для её работы, при чём он устанавливается 15-20 минут в полной версии..

AquaTour, 3.03.2018 - 17:29

сам фреимворк нужен для работы, для компиляции дополнительно необходимы
Microsoft Build Tools 2015
.NET Framework 4.6.2 targeting Pack

версия с библиотекой
» Нажмите, для открытия спойлера | Press to open the spoiler «

сбоку manual download
скачивается nuget файл, который является обычным архивом
файл \lib\net40-full\ZetaLongPaths.dll надо положить рядом с исходным кодом.

собирается такой командой
c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /reference:ZetaLongPaths.dll Program.cs

nokeMoH, 3.03.2018 - 20:15

Немного запутался в хронологии сообщений.. Ваш ответ наверное следует отнести к это беседе..

» Past dialog «

Цитата | Quote(AquaTour @ 3.03.2018 - 17:52)
сам фреимворк нужен для работы, для компиляции дополнительно необходимы
Microsoft Build Tools 2015
.NET Framework 4.6.2 targeting Pack

Если я правильно понял запятую, поставленную в "нужном" месте, то в случае
Цитата | Quote(AquaTour @ 3.03.2018 - 16:56)
1) Собирать под фреймворк 4.6.2 но как это сделать не устанавливая доп софт я не знаю, так что могу отдать исходники и уже собранную версию
в случае сборки приложения в версии Без дополнительной библиотеки, в процессе компиляции Кода.cs потребовалась бы установка в систему Microsoft Build Tools 2015 и .NET Framework 4.6.2 targeting Pack с моей стороны, так как мне бы пришлось компилировать, но у меня этих приложений в системе не установлено..


Цитата | Quote(AquaTour @ 3.03.2018 - 17:52)
версия с библиотекой
сбоку manual download
скачивается nuget файл, который является обычным архивом
файл \lib\net40-full\ZetaLongPaths.dll надо положить рядом с исходным кодом.

собирается такой командой
c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /reference:ZetaLongPaths.dll Program.cs

(1). По этим инструкциям скомпилировал приложение без дополнительной установки софтов в систему Microsoft Build Tools 2015 и .NET Framework 4.6.2 targeting Pack ,, я правильно сделал ?.. Процесс завершился удачно и на выходе получилось работоспособное приложение..

(2). Успел его уже погонять, потестировал при разных условиях, работает как в аптеке.. На выходе получил всё тот же самый список что и раньше, но только тогда всё было вперемешку, и Полезные ссылки (найденные файлы) и бесполезная информация (вроде такой: Слишком длинный путь или имя файла. Полное имя файла должно содержать меньше 260 знаков, а имя каталога - меньше 248 знаков), а сейчас, с утилитой и библиотекой, всё тот же самый список полезных ссылок, где даже сохранена хронология файлов в том же порядке, но пресловутая бесполезная информация отсутствует полностью.. Я правильно понимаю как работает эта утилита с данной библиотекой, она просто отсекает эту ненужную информацию и не записывает её в общий Filelist.txt ?..

AquaTour, 3.03.2018 - 21:41

Цитата | Quote(nokeMoH @ 3.03.2018 - 20:38)
в случае сборки приложения в версии Без дополнительной библиотеки, в процессе компиляции Кода.cs потребовалась бы установка в систему Microsoft Build Tools 2015 и .NET Framework 4.6.2 targeting Pack с моей стороны, так как мне бы пришлось компилировать, но у меня этих приложений в системе не установлено..
*
верно
Цитата | Quote(nokeMoH @ 3.03.2018 - 20:38)
я правильно сделал ?
*
правильно
Цитата | Quote(nokeMoH @ 3.03.2018 - 20:38)
Я правильно понимаю как работает эта утилита с данной библиотекой, она просто отсекает эту ненужную информацию и не записывает её в общий Filelist.txt ?
*
неправильно.
Для простоты, я сделал вывод ошибок и имен файлов в один поток.
В предыдущей версии, программа не могла получить доступ к файлу с длинным именем, возникало исключение и информация о нем писалась в вывод. Сейчас программа может работать с длинными именами, ошибок не возникает, соответственно и информации в выводе о них нет.
Но в случае возникновения ошибки она по прежнему попадет в общий вывод, например натравите программу на корень диска C и получите множество сообщений о том, что программа не может получить доступ к файлу или папке.

AquaTour, 10.03.2018 - 0:47

новая версия
» Нажмите, для открытия спойлера | Press to open the spoiler «


версия для печати -> Полная версия

SoftoRooM © 2004-2024