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

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

Ответить
Настройки темы
[решено] Как удалить строки в текстовом файле при отсутсвии файла в опрелеленном месте?

Аватара для Pozia

Ветеран


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

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


В Total Commander есть файл DEFAULT.bar в котором прописаны все пути к ярлыкам запускаемых файлов. Вот содержание моего:

Код: Выделить весь код
[Buttonbar]
Buttoncount=78
button1=%COMMANDER_PATH%\ICO\ICONVISTA\Поверх.ico
cmd1=%COMMANDER_PATH%\Utilites\Screpka.exe
path1=%COMMANDER_PATH%\Utilites\
menu1=Поверх всех окон
button2=%COMMANDER_PATH%\ICO\ICONVISTA\Мой компьютер.ico
cmd2=cm_OpenDrives
menu2=Мой компьютер
button3=%COMMANDER_PATH%\ICO\ICONVISTA\Документы пользователя.ico
cmd3=cd %USERPROFILE%
menu3=Папка пользователя
button4=%COMMANDER_PATH%\ICO\ICONVISTA\Документы.ico
cmd4=cd %$PERSONAL%
menu4=Мои документы
button5=%COMMANDER_PATH%\ICO\ICONVISTA\Корзина.ico
cmd5=cm_OpenRecycled
menu5=Корзина
button6=%COMMANDER_PATH%\ICO\ICONVISTA\Скрытые.ico
cmd6=cm_SwitchHidSys
menu6=Скрытые/системные файлы
button7=%COMMANDER_PATH%\ICO\bar01.dll,16
cmd7=cm_SearchFor
menu7=Поиск
button8=%COMMANDER_PATH%\ICO\bar01.dll,20
cmd8=cm_SetAttrib
menu8=Изменить аттрибуты
button9=%COMMANDER_PATH%\ICO\ICONVISTA\Диспетчер устройств.ico
cmd9=%windir%\SYSTEM32\devmgmt.msc
menu9=Диспетчер устройств
button10=%COMMANDER_PATH%\ICO\ICONVISTA\Управление.ico
cmd10=%windir%\SYSTEM32\compmgmt.msc
menu10=Управление компьютером
button11=%COMMANDER_PATH%\ICO\bar02.dll,23
cmd11=regedit.exe
menu11=Редактор реестра
button12=C:\Program Files\Regshot\Regshot.exe
cmd12=""C:\Program Files\Regshot\Regshot.exe""
path12=C:\Program Files\Regshot\
menu12=Regshot 2.0.1.66 unicode
button13=%COMMANDER_PATH%\ICO\ICONVISTA\DOC.ico
cmd13=cmd.exe
menu13=Командная строка
button14=%COMMANDER_PATH%\ICO\ICONVISTA\Диспетчер задач.ico
cmd14=taskmgr.exe
menu14=Диспетчер задач
button15=C:\Program Files\Lavalys\EVEREST Ultimate Edition\everest.exe
cmd15=C:\Program Files\Lavalys\EVEREST Ultimate Edition\everest.exe
path15=C:\Program Files\Lavalys\EVEREST Ultimate Edition\
menu15=EVEREST Ultimate Edition 5.00.1650
button16=C:\Program Files\TuneUp Utilities 2009\Integrator.exe
cmd16=C:\Program Files\TuneUp Utilities 2009\Integrator.exe
path16=C:\Program Files\TuneUp Utilities 2009\
menu16=TuneUp Utilities 2009 8.0.2000
button17=C:\Program Files\Deafrag\Defrag.exe
cmd17=C:\Program Files\Deafrag\Defrag.exe
path17=C:\Program Files\Deafrag\
menu17=TuneUp Deafrag 2009 8.0.2000
button18=C:\Program Files\CCleaner\ccleaner.exe
cmd18=C:\Program Files\CCleaner\ccleaner.exe
path18=C:\Program Files\CCleaner\
menu18=CCleaner 2.15.815
button19=C:\Program Files\TouchStoneSoftware\UndeletePlus\undelete_plus.exe
cmd19=C:\Program Files\TouchStoneSoftware\UndeletePlus\undelete_plus.exe
path19=C:\Program Files\TouchStoneSoftware\UndeletePlus\
menu19=UndeletePlus 2.9.7.0
button20=%COMMANDER_PATH%\Utilites\SFX Tool\Button.exe
cmd20=Button.exe
param20=%L
path20=%COMMANDER_PATH%\Utilites\SFX Tool\
menu20=7z SFX archive tool #12.3
button21=%COMMANDER_PATH%\ICO\bar01.dll,28
cmd21=cm_CRCcreate
menu21=Создать контрольные суммы CRC
button22=%COMMANDER_PATH%\ICO\bar01.dll,29
cmd22=cm_CRCcheck
menu22=Проверить контрольные суммы CRC
button23=%COMMANDER_PATH%\ICO\bar01.dll,12
cmd23=cm_IntCompareFilesByContent
menu23=Сравнить файлы по содержимому
button24=C:\Program Files\AutoCAD 2007\acad.exe
cmd24=C:\Program Files\AutoCAD 2007\acad.exe
path24=C:\Program Files\AutoCAD 2007\
menu24=AutoCAD 2007
button25=C:\WINDOWS\system32\mspaint.exe
cmd25=C:\WINDOWS\system32\mspaint.exe
path25=C:\WINDOWS\system32\
menu25=MS Paint 5.1
button26=C:\Program Files\Advanced Grapher\AGrapher.exe
cmd26=C:\Program Files\Advanced Grapher\AGrapher.exe
path26=C:\Program Files\Advanced Grapher\
menu26=Advanced Grapher 2.11
button27=C:\PROGRA~1\Mathcad\Mathcad.exe
cmd27=C:\Program Files\Mathcad\Mathcad.exe
path27=C:\Program Files\Mathcad\
menu27=Mathcad 13.1 (604040953)
button28=C:\Program Files\ABBYY FineReader 9.0\FineReader.exe
cmd28=C:\Program Files\ABBYY FineReader 9.0\FineReader.exe
path28=C:\Program Files\ABBYY FineReader 9.0\
menu28=ABBYY FineReader Professional Edition 9.0.0.662 (5581)
button29=C:\Program Files\Office2003\OFFICE11\WINWORD.EXE
cmd29=""C:\Program Files\Office2003\OFFICE11\WINWORD.EXE""
path29=C:\Program Files\Office2003\OFFICE11\
menu29=WORD 2003
button30=C:\Program Files\Office2003\OFFICE11\EXCEL.EXE
cmd30=""C:\Program Files\Office2003\OFFICE11\EXCEL.EXE""
path30=C:\Program Files\Office2003\OFFICE11\
menu30=EXCEL 2003
button31=C:\Program Files\Office2007\Office12\WINWORD.EXE
cmd31=""C:\Program Files\Office2007\Office12\WINWORD.EXE""
path31=C:\Program Files\Office2007\Office12\
menu31=WORD 2007
button32=C:\Program Files\Office2007\Office12\EXCEL.EXE
cmd32=""C:\Program Files\Office2007\Office12\EXCEL.EXE""
path32=C:\Program Files\Office2007\Office12\
menu32=EXCEL 2007
button33=C:\Program Files\Winamp\Winamp.exe,3
cmd33=C:\Program Files\Winamp\Winamp.exe
path33=C:\Program Files\Winamp\
menu33=Winamp 5.541
button34=C:\Program Files\Windows Media Player\wmplayer.exe
cmd34=C:\Program Files\Windows Media Player\wmplayer.exe
path34=C:\Program Files\Windows Media Player\
menu34=Windows Media Player 11.0.5721.5246
button35=C:\Program Files\CyberLink\PowerDVD8\PowerDVD8.exe
cmd35=""C:\Program Files\CyberLink\PowerDVD8\PowerDVD8.exe""
path35=C:\Program Files\CyberLink\PowerDVD8\
menu35=PowerDVD Ultra 8.0.1830.50
button36=C:\Program Files\Light Alloy\LA.exe
cmd36=""C:\Program Files\Light Alloy\LA.exe""
path36=C:\Program Files\Light Alloy\
menu36=Light Alloy 4.4 (784)
button37=C:\Program Files\VLC\vlc.exe
cmd37=C:\Program Files\VLC\vlc.exe
path37=C:\Program Files\VLC\
menu37=VLC media player 0.9.4
button38=C:\Program Files\Wavosaur\Wavosaur.exe
cmd38=C:\Program Files\Wavosaur\Wavosaur.exe
path38=C:\Program Files\Wavosaur\
menu38=Wavosaur 1.0.3.0
button39=C:\Program Files\TagRename\TagRename.exe
cmd39=C:\Program Files\TagRename\TagRename.exe
path39=C:\Program Files\TagRename\
menu39=TagRename 3.4.5
button40=C:\Program Files\Movie Maker\moviemk.exe
cmd40=""C:\Program Files\Movie Maker\moviemk.exe""
path40=C:\Program Files\Movie Maker\
menu40=Movie Maker 2.6.4037.0
button41=C:\Program Files\ACD Systems\ACDSee\11.0\ACDSeeSR.exe
cmd41=C:\Program Files\ACD Systems\ACDSee\11.0\ACDSee11.exe
path41=C:\Program Files\ACD Systems\ACDSee\11.0\
menu41=ACDSee Photo Manager 11.0 (85)
button42=C:\Program Files\FSViewer\FSViewer.exe
cmd42=C:\Program Files\FSViewer\FSViewer.exe
path42=C:\Program Files\FSViewer\
menu42=FastStone Image Viewer 3.2
button43=C:\Program Files\ESMA Ltd\CityInfo\CityInfo.exe,2
cmd43=C:\Program Files\ESMA Ltd\CityInfo\CityInfo.exe
path43=C:\Program Files\ESMA Ltd\CityInfo\
menu43=CityInfo 2.7.0.58
button44=C:\Program Files\Bases-09\MegaContacts.exe
cmd44=C:\Program Files\Bases-09\MegaContacts.exe
path44=C:\Program Files\Bases-09\
menu44=Телефонный справочник СНГ 2007 3.6.1.40
button45=C:\Program Files\AlarmNP\AlarmNP.exe
cmd45=C:\Program Files\AlarmNP\AlarmNP.exe
path45=C:\Program Files\AlarmNP\
menu45=AlarmNP 1.16
button46=%COMMANDER_PATH%\ICO\ICONVISTA\Флешка.ico
cmd46=hidcon.exe %COMMANDER_PATH%\PLUGINS\Media\DevEject\DevEject.exe -EjectDrive:n:
path46=%COMMANDER_PATH%\PLUGINS\Media\DevEject\
menu46=Отключение флешки
button47=%COMMANDER_PATH%\ICO\ICONVISTA\DVD.ico
cmd47=C:\WINDOWS\CDEject.exe
path47=C:\WINDOWS\
menu47=Извлечь/Вставить DVD привод
button48=C:\Program Files\Alcohol Soft\Alcohol 120\Alcohol.exe
cmd48=C:\Program Files\Alcohol Soft\Alcohol 120\Alcohol.exe
path48=C:\Program Files\Alcohol Soft\Alcohol 120\
menu48=Alcohol 120% 1.9.8 (7117)
button49=C:\Program Files\UltraISO\UltraISO.exe
cmd49=C:\Program Files\UltraISO\UltraISO.exe
path49=C:\Program Files\UltraISO\
menu49=UltraISO 9.3.0.2612 PE
button50=C:\Program Files\Nero\Nero8\Nero StartSmart\NeroStartSmart.exe
cmd50=C:\Program Files\Nero\Nero8\Nero StartSmart\NeroStartSmart.exe
path50=C:\Program Files\Nero\Nero8\Nero StartSmart\
menu50=Nero StartSmart 8.3.6.0
button51=C:\Program Files\Nero\Nero Core\nero.exe
cmd51=C:\Program Files\Nero\Nero Core\nero.exe
path51=C:\Program Files\Nero\Nero Core\
menu51=Nero Micro 8.3.2.1
button52=C:\Program Files\InfraRecorder\InfraRecorder.exe
cmd52=C:\Program Files\InfraRecorder\InfraRecorder.exe
path52=C:\Program Files\InfraRecorder\
menu52=InfraRecorder 0.45
button53=C:\Program Files\NSCOPY\nscopy.exe
cmd53=C:\Program Files\NSCOPY\nscopy.exe
path53=C:\Program Files\NSCOPY\
menu53=Non-Stop Copy 1.04
button54=C:\Program Files\ESET\ESET Smart Security\egui.exe,1
cmd54=C:\Program Files\ESET\ESET Smart Security\egui.exe
path54=C:\Program Files\ESET\ESET Smart Security\
menu54=ESET Smart Security BE 4.0.314
button55=C:\Program Files\Nokia\Nokia PC Suite 7\PCSuite.exe
cmd55=C:\Program Files\Nokia\Nokia PC Suite 7\PCSuite.exe
path55=C:\Program Files\Nokia\Nokia PC Suite 7\
menu55=Nokia PC Suite 7.1.18.0
button56=C:\Program Files\Nokia\Nokia PC Suite 7\PcSync2.exe
cmd56=C:\Program Files\Nokia\Nokia PC Suite 7\PcSync2.exe
path56=C:\Program Files\Nokia\Nokia PC Suite 7\
menu56=PcSync2
button57=C:\Program Files\Прогноз погоды\weather.exe
cmd57=C:\Program Files\Прогноз погоды\weather.exe
path57=C:\Program Files\Прогноз погоды\
menu57=Прогноз погоды 2.0
button58=C:\Program Files\QIP\qip.exe
cmd58=C:\Program Files\QIP\qip.exe
path58=C:\Program Files\QIP\
menu58=QIP 2005 8080
button59=C:\Program Files\NetLook\NetLook.exe
cmd59=C:\Program Files\NetLook\NetLook.exe
path59=C:\Program Files\NetLook\
menu59=NetLook 2.3
button60=C:\Program Files\Internet Explorer\iexplore.exe
cmd60=""C:\Program Files\Internet Explorer\iexplore.exe""
path60=C:\Program Files\Internet Explorer\
menu60=Internet Explorer 7.0.5730.13
button61=C:\Program Files\Opera\Opera.exe
cmd61=""C:\Program Files\Opera\Opera.exe""
path61=C:\Program Files\Opera\
menu61=Opera 9.63 (10476)
button62=C:\Program Files\Windows Live\Mail\wlmail.exe
cmd62=""C:\Program Files\Windows Live\Mail\wlmail.exe""
path62=C:\Program Files\Windows Live\Mail\
menu62=Почта Windows Live
button63=C:\Program Files\Download Master\dmaster.exe
cmd63=""C:\Program Files\Download Master\dmaster.exe""
path63=C:\Program Files\Download Master\
menu63=Download Master 5.5.9.1155
button64=C:\Program Files\Google Earth Pro\GoogleEarthPro.exe
cmd64=C:\Program Files\Google Earth Pro\GoogleEarthPro.exe
path64=C:\Program Files\Google Earth Pro\
menu64=Google Earth Pro 4.2.205.5730
button65=%COMMANDER_PATH%\ICO\bar01.dll,21
cmd65=cm_FtpNew
menu65=Новое FTP-соединение
button66=%COMMANDER_PATH%\ICO\bar01.dll,22
cmd66=cm_FtpConnect
menu66=Подключиться по FTP
button67=C:\Program Files\FlylinkDC++\FlylinkDC.exe
cmd67=""C:\Program Files\FlylinkDC++\FlylinkDC.exe""
path67=C:\Program Files\FlylinkDC++\
menu67=FlylinkDC++ (r361)
button68=C:\Program Files\SipDiscount.com\SipDiscount\SipDiscount.exe
cmd68=""C:\Program Files\SipDiscount.com\SipDiscount\SipDiscount.exe""
path68=C:\Program Files\SipDiscount.com\SipDiscount\
menu68=Moroko SipDiscount 4.02 (492)
button69=c:\Program Files\Nonoh.net\Nonoh\Nonoh.exe
cmd69=""c:\Program Files\Nonoh.net\Nonoh\Nonoh.exe""
path69=c:\Program Files\Nonoh.net\Nonoh\
menu69=Moroko Nonoh 4.02 (523)
button70=C:\Program Files\Skype\Phone\Skype.exe
cmd70=""C:\Program Files\Skype\Phone\Skype.exe""
path70=C:\Program Files\Skype\Phone\
menu70=Skype 4.0.0.206
button71=%COMMANDER_PATH%\ICO\ICONVISTA\Сеть.ico
cmd71=cd \\10.16.10.5
menu71=Netberry 10.16.10.5
button72=%COMMANDER_PATH%\ICO\ICONVISTA\Сеть.ico
cmd72=cd \\10.16.0.5
menu72=Silver 10.16.0.5
button73=%COMMANDER_PATH%\ICO\ICONVISTA\Сеть.ico
cmd73=cd \\10.16.24.5
menu73=Samba 10.16.24.5
button74=%COMMANDER_PATH%\ICO\ICONVISTA\Сеть.ico
cmd74=cd \\10.16.34.5
menu74=Fileserver 10.16.34.5
button75=%COMMANDER_PATH%\ICO\ICONVISTA\Сеть.ico
cmd75=cd \\10.16.56.5
menu75=DriveNet 10.16.56.5
button76=%COMMANDER_PATH%\ICO\ICONVISTA\Сеть.ico
cmd76=cd \\10.16.20.1
menu76=10.16.20.1
button77=%COMMANDER_PATH%\ICO\ICONVISTA\Сеть.ico
cmd77=cd \\10.16.97.1
menu77=Atlantis Server (10.16.97.1)
button78=%COMMANDER_PATH%\ICO\ICONVISTA\Сеть.ico
cmd78=cd \\10.16.97.174
menu78=Апосталы (10.16.97.174)
Нужен скрипт который будет проверять наличие установленной в системе программы и если она не установлена то скрипт удалит соответствующие записи о ней из DEFAULT.bar. Напрмер: Скрипт проверяет наличие Light Alloy. Если файл LA.exe по пути C:\Program Files\Light Alloy\ есть то скрипт переходит к проверке следующей программы, если файла нет то удаляются строки в DEFAULT.bar под номером 129, 130, 131, 132. Так как строки в первый запуск скрипта имеют определенное исходное положение то можно удалять строки по их номеру без точного поиска нужной строки.

Такая задумка вообще реально средствами АвтоИт???

Отправлено: 02:54, 14-03-2009

 

Googler


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

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


Pozia, попробуй еще так :
Код: Выделить весь код
#include <WinAPI.au3>

$sFile = "C:\TotalCmd\Default.Bar"
$sBBar = FileRead($sFile)
$sBBar = _TCMD_ButtonBarPack($sBBar)
$hFile = FileOpen($sFile, 2)
FileWrite($hFile, $sBBar)
FileClose($hFile)

Func _TCMD_ButtonBarPack($sBBar)
    Local $iBOut = 0, $sBOut = "", $sCMD, $sPath
    Local $aBBar = StringRegExp($sBBar,"(?mi)^([a-z_]+(\d+)=[^\n]*[\n\r]+(?:[a-z_]+\2=[^\n]*[\n\r]+)*)",3), $aCBar = $aBBar

    EnvSet("COMMANDER_PATH", RegRead("HKCU\Software\Ghisler\Total Commander","InstallDir"))
    For $i=0 To UBound($aBBar)-1 Step 2
        Opt("ExpandEnvStrings", 1)
        $aBBar[$i] = StringRegExpReplace($aBBar[$i],'""','"')
        $sPath = StringRegExpReplace($aBBar[$i],'(?is)^.*?(?:^|[\n\r])path\d+="*([^"%\n\r]+).*$',"\1")
        If @extended=1 And $sPath<>"" Then FileChangeDir($sPath)
        $sCMD =StringRegExpReplace($aBBar[$i],'(?is)^.*?(?:^|[\n\r])cmd\d+=(?:cm_\w|cd |"([^"%\n\r]+)"|([^":%\s\n\r\\]+)(?:[\n\r\s]|$)|([^"%\n\r]+)).*$',"\1\2\3")
        If @extended=0 Or $sCMD="" Or FileExists($sCMD) Or _WinAPI_FindExecutable($sCMD)<>"" Then
            $iBOut +=1
            Opt("ExpandEnvStrings", 0)
            $aCBar[$i] = StringRegExpReplace($aCBar[$i], '\d+=', $iBOut &'=')
            $sBOut &= $aCBar[$i]
        EndIf
    Next
    Return "[ButtonBar]" &@CRLF& "ButtonCount="& $iBOut &@CRLF& $sBOut
EndFunc
З.Ы. Путь установки TC берется из реестра (HKCU\Software\Ghisler\Total Commander\InstallDir)
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:18, 15-03-2009 | #11



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

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


Аватара для Pozia

Ветеран


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

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


amel27, этот скрипт вообще не работает. Или его нужно использовать вписав в предыдущие?

Цитата amel27:
Путь установки TC берется из реестра (HKCU\Software\Ghisler\Total Commander\InstallDir) »
Лучше сделайте чтобы путь можно было прописать в самом скрипте так как я тотал не устанавливаю а просто копирую из SFX архивом

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 18:35, 15-03-2009 | #12


Аватара для proxy

Старожил


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

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


Цитата amel27:
З.Ы. Путь установки TC берется из реестра (HKCU\Software\Ghisler\Total Commander\InstallDir) »
к примеру свою сбортку тоотола я уже даааавно не инсталирую, а просто переношу с системы на систему

Цитата:
3. И пожалуйста уберите все эти диологи. Мне бы тихий скрипт И если это возможно то в один все файл внесите
так для чего же там сделал область настроек??? )))))
можно настроить будет все ооочень тихо:
Показывать окно настроек: Нет
запускать при старте: Да

Если нет ошибок - снять все галочки кроме Закрыть программу

Если есть ошибки - снять все галочки кроме Закрыть программу

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

amel27, все так компактно - даже не поймешь как оно работает,
но как понимаю все меняет налету? - это крута...
а номера кнопок меняет ?

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?


Отправлено: 20:42, 15-03-2009 | #13


Аватара для Pozia

Ветеран


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

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


amel27, все OK!!! Указал путь к тоталу $sFile = "C:\TC\Default.Bar" и все сработало! Я ваще в шоке от Вашего скрипта. Такой маленький а так хорошо со всем справляется. Спасибо!

amel27, а как в скрипте задать относительный путь %programfiles%\TC\Default.Bar?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 22:43, 15-03-2009 | #14


Аватара для Pozia

Ветеран


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

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


amel27, нашел недароботку. Удаляется кнопка 7z

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 23:01, 15-03-2009 | #15


Googler


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

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


Цитата Pozia:
как в скрипте задать относительный путь »
подправил - путь к Тоталу и имя BAR-файла задаются вручную, по ходу немного изменил алгоритм:
Код: Выделить весь код
#include <WinAPI.au3>

$sRoot = @ProgramFilesDir &"\TC"
$sFile = $sRoot  &"\Default.Bar"

$sBBar = FileRead($sFile)
EnvSet("COMMANDER_PATH", $sRoot)
$sBBar = _TCMD_ButtonBarPack($sBBar)
$hFile = FileOpen($sFile, 2)
FileWrite($hFile, $sBBar)

Func _TCMD_ButtonBarPack($sBBar)
    Local $iBOut, $sBOut=@CRLF, $sCMD, $sPath, $aBBar=StringRegExp($sBBar,"(?mi)^([a-z_]+(\d+)=[^\n]*[\n\r]+(?:[a-z_]+\2=[^\n]*[\n\r]+)*)",3)
    For $i=0 To UBound($aBBar)-1 Step 2
        Opt("ExpandEnvStrings", 1)
        $sPath = StringRegExpReplace($aBBar[$i],'(?is)^.*?(?:^|[\n\r])path\d+="*([^"\n\r]+).*$',"\1")
        If @extended=1 And $sPath<>"" Then FileChangeDir($sPath)
        $sCMD =StringRegExpReplace($aBBar[$i],'(?is)^.*?(?:^|[\n\r])cmd\d+=(?:cm_|cd |"+([^"\n\r]+)"+|([^"\s\n\r\\]+)(?:[\n\r\s]|$)|([^"\n\r]+)).*$',"\1\2\3")
        If @extended=0 Or $sCMD="" Or FileExists($sCMD) Or _WinAPI_FindExecutable($sCMD)<>"" Then
            $iBOut +=1
            Opt("ExpandEnvStrings", 0)
            $sBOut &= StringReplace($aBBar[$i], $aBBar[$i+1]&'=', $iBOut &'=')
        EndIf
    Next
    Return SetError(0, Opt("ExpandEnvStrings",0), "[ButtonBar]"&@CRLF&"ButtonCount="& $iBOut & $sBOut)
EndFunc
Цитата Pozia:
нашел недароботку. Удаляется кнопка 7z »
странно, у меня вроде нормально - если файл Button.exe есть по указанному пути, то оставляет... кстати, скрипт среди множества встроенных CMD-команд распознает только "CD" - все другие (из длинного списка HELP) будут удалены

Последний раз редактировалось amel27, 16-03-2009 в 09:20.

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:34, 16-03-2009 | #16


Аватара для Pozia

Ветеран


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

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


amel27, вот этот скрипт не удоляет кнопку. А тот удалял. Команда на запуск кнопки была просто Button.exe. Я ее переписал так %COMMANDER_PATH%\Utilites\SFX Tool\Button.exe и тогда и первый ваш скрипт правильно работал.

Хотел было написать чтобы скрипт не удалял пустые button...= так он уже и это умеет. Потрясно!!! Спасибо!!!

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 23:19, 16-03-2009 | #17


Аватара для Pozia

Ветеран


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

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


amel27, а как подправить скрипт чтобы он работал с файлом DEFAULT.bar который находится рядом со скриптом в одной папке??? Чет не могу сообразить

amel27, или подскажите переменную Program Files (x86) чтобы скрипт работал в вистет 64 бит нормально

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 20:34, 21-04-2009 | #18


Googler


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

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


Цитата Pozia:
как подправить скрипт чтобы он работал с файлом DEFAULT.bar который находится рядом со скриптом »
Код: Выделить весь код
$sFile = @ScriptDir &"\Default.Bar"
Цитата Pozia:
подскажите переменную Program Files (x86) чтобы скрипт работал в вистет 64 бит нормально »
скомпилировать в 32-бит и @ProgramFilesDir будет возвращать "C:\Program Files (x86)"
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:58, 22-04-2009 | #19


Аватара для Pozia

Ветеран


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

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


amel27, а как быть с $sRoot? Ведь она есть здесь: EnvSet("COMMANDER_PATH", $sRoot)

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 07:45, 22-04-2009 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удаление строк в текстовом файле, как это сделать??? VladZombie Скриптовые языки администрирования Windows 70 08-09-2020 13:28
CMD/BAT - [решено] Передача исполняемому файлу параметров, перечисленных в текстовом файле Vadikan Скриптовые языки администрирования Windows 6 19-04-2017 02:30
[решено] Найти и заменить в текстовом файле. Как? Pozia AutoIt 15 11-03-2010 19:12
CMD/BAT - [решено] Отделить последние цифры из строчки в текстовом файле ZeroCrash Скриптовые языки администрирования Windows 4 29-06-2009 16:03
[решено] Работа из командной строки | Убрать все пробелы в текстовом файле Greyman Хочу все знать 11 17-06-2007 22:44




 
Переход