Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] найти файл и использовать его имя

Ответить
Настройки темы
CMD/BAT - [решено] найти файл и использовать его имя

Аватара для Mad Max

Пользователь


Сообщения: 64
Благодарности: 3


Конфигурация

Профиль | Отправить PM | Цитировать


Добрый день!
Суть задачи:
1. в папке имеються много файлов, нужно получить имя exe файла с наименьшим размером.
2. есть текстовый файл 1.txt, примерно такого содержания:
;!@Install@!UTF-8!
ExtractTitle="Myprog"
GUIMode="2"
RunProgram="xlk334r38.exe"
;!@InstallEnd@!

так вот нужно заменить имя exe файла в файле на найденное.

Зарание всем спасибо за помощь!

Отправлено: 17:17, 19-07-2009

 

Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата Mad Max:
есть текстовый файл 1.txt, примерно такого содержания: »
Забыли указать, что этот файл в кодировке UTF-8
Попробуйте так:
Код: Выделить весь код
@Echo Off
Setlocal EnableDelayedExpansion 
:: путь к папке с файлами (имя искомого файла только в латинице) 
Set _path=c:\Temp

For /F "delims=" %%a In ('dir "%_path%" /A:-D /B') Do If "%%~xa"==".exe" (
	If Not DEFINED minS Set minS=%%~za
	If !minS! GEQ %%~za Set minS=%%~za& Set minN=%%~nxa
)
Echo RunProgram="!minN!">>a.txt
setlocal disabledelayedexpansion
Echo ;!@InstallEnd@!>>a.txt
Pause>nul
Exit
Рядом с бат файлом положите файл a.txt в кодировке UTF-8 (с сигнатурой) следующего содержания:
Код: Выделить весь код
;!@Install@!UTF-8!
ExtractTitle="Myprog"
GUIMode="2"
Важно. Имя найденного файла не должно содержать кириллицу!!!

Последний раз редактировалось gora, 20-07-2009 в 07:57. Причина: добавил решение


Отправлено: 17:27, 19-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Mad Max

Пользователь


Сообщения: 64
Благодарности: 3

Профиль | Отправить PM | Цитировать


При таком раскладе выбирает последний exe файл

Отправлено: 22:03, 19-07-2009 | #3


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Mad Max, попробуйте изменить оператор сравнения на GEQ так:
Код: Выделить весь код
	If !minS! GEQ %%~za Set minS=%%~za& Set minN=%%~nxa

Отправлено: 22:22, 19-07-2009 | #4


Аватара для Mad Max

Пользователь


Сообщения: 64
Благодарности: 3

Профиль | Отправить PM | Цитировать


Тоже самое, почему то %%~za выдает пустышки....
На те файлы которые были вытянуты 7зипом из сфх архива неопределяет размер...

П.С.
Сделал так:

Код: Выделить весь код
For /F "delims=" %%a In ('dir "%_path%\*.exe" /A:-D /B /O:S') Do set MinN=%%a& goto :end 
:end 
Echo RunProgram="%minN%">>a.txt
Echo ;!@InstallEnd@!>>a.txt
Оптимизируйте если можно.

Последний раз редактировалось Mad Max, 20-07-2009 в 14:11.


Отправлено: 23:13, 19-07-2009 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] найти файл и использовать его имя

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Цикл... Как его правельно использовать в моём случае??? sashadeg AutoIt 3 24-03-2009 16:53
Разное - [решено] использовать гибернацию, чтобы файл создавался на другом диске (не на С:) d_u Microsoft Windows Vista 2 28-01-2009 20:04
Разное - [решено] Печать в файл. Как задать его по умолчанию???? titus_fst Microsoft Windows 2000/XP 2 22-12-2008 16:16
Интерфейс - [решено] Как в реестре Windows XP поменять местами букву логического диска и его имя? Star_net Microsoft Windows 2000/XP 5 19-07-2008 12:54
Не удается найти файл ххх (или один из его компонентов) Slawa 2100 Microsoft Windows NT/2000/2003 6 27-08-2002 11:06




 
Переход