Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] найти файл и использовать его имя (http://forum.oszone.net/showthread.php?t=145582)

Mad Max 19-07-2009 17:17 1171988

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

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

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

gora 19-07-2009 17:27 1171995

Цитата:

Цитата 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"

Важно. Имя найденного файла не должно содержать кириллицу!!!

Mad Max 19-07-2009 22:03 1172245

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

gora 19-07-2009 22:22 1172262

Mad Max, попробуйте изменить оператор сравнения на GEQ так:
Код:

        If !minS! GEQ %%~za Set minS=%%~za& Set minN=%%~nxa

Mad Max 19-07-2009 23:13 1172289

Тоже самое, почему то %%~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

Оптимизируйте если можно.


Время: 15:37.

Время: 15:37.
© OSzone.net 2001-