Показать полную графическую версию : [решено] найти файл и использовать его имя
Добрый день!
Суть задачи:
1. в папке имеються много файлов, нужно получить имя exe файла с наименьшим размером.
2. есть текстовый файл 1.txt, примерно такого содержания:
;!@Install@!UTF-8!
ExtractTitle="Myprog"
GUIMode="2"
RunProgram="xlk334r38.exe"
;!@InstallEnd@!
так вот нужно заменить имя exe файла в файле на найденное.
Зарание всем спасибо за помощь!
есть текстовый файл 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"
Важно. Имя найденного файла не должно содержать кириллицу!!!
При таком раскладе выбирает последний exe файл
Mad Max, попробуйте изменить оператор сравнения на GEQ так:
If !minS! GEQ %%~za Set minS=%%~za& Set minN=%%~nxa
Тоже самое, почему то %%~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
Оптимизируйте если можно.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.