|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » delete C:\*.* /exclude=zzz.lst ? |
|
delete C:\*.* /exclude=zzz.lst ?
|
Ветеран Сообщения: 842 |
Профиль | Отправить PM | Цитировать У меня на C: лежат файлы, к примеру -
/~ [папка] /BOOT.INI /NTDETECT.COM /NTLDR как мне удалить всё остальное исключив этот полезный контент? вариант с батником если не трудно тоже пожалуйста, так как разные бывают задачи? |
|
------- Отправлено: 15:43, 12-06-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата semiono:
В справке ведь оно всё написано. |
|
------- Отправлено: 00:16, 16-06-2009 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Точно! Всё легко получилось, просто ифов понаставил как есть, я думал сложнее будет!
Кстати в хелпе мало написанно, я бы ещё долго думал, как If @OSArch = "x86" Then составить, я бы комплексовал бы, как обычно кода боюсь. If @OSArch = "x86" Then $InstallDir = RegRead("HKLM\Software\Native Instruments\AkoustikPiano","InstallDir") $file = FileOpen($InstallDir & "\AkoustikPiano.reg", 10) FileWrite($file, "Windows Registry Editor Version 5.00" & @CRLF & @CRLF) FileWrite($file, "[HKEY_LOCAL_MACHINE\Software\Native Instruments\AkoustikPiano]" & @CRLF) FileWrite($file, """SYSTEMID""=" & $sysID & "" & @CRLF & @CRLF) FileClose($file) EndIf If @OSArch = "x64" Then $InstallDir = RegRead("HKLM\Software\Wow6432Node\Native Instruments\AkoustikPiano","InstallDir") $file = FileOpen($InstallDir & "\AkoustikPiano.reg", 10) FileWrite($file, "Windows Registry Editor Version 5.00" & @CRLF & @CRLF) FileWrite($file, "[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Native Instruments\AkoustikPiano]" & @CRLF) FileWrite($file, """SYSTEMID""=" & $sysID & "" & @CRLF & @CRLF) FileClose($file) EndIf пришлось к AutoIt обращаться, как всегда только это и выручает! |
------- Отправлено: 00:41, 16-06-2009 | #12 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата semiono:
Что касается кода выше, то можно укоротить: $sRegKeyName = "" Switch @OSArch Case "x86" $sRegKeyName = "HKLM\Software\Native Instruments\AkoustikPiano" Case "x64" $sRegKeyName = "HKLM\Software\Wow6432Node\Native Instruments\AkoustikPiano" EndSwitch $InstallDir = RegRead($sRegKeyName, "InstallDir") $sFile_Content = _ "Windows Registry Editor Version 5.00" & @CRLF & @CRLF & _ "[" & $sRegKeyName & "]" & @CRLF & _ '"SYSTEMID"=' & $sysID & @CRLF & @CRLF $hFileOpen = FileOpen($InstallDir & "\AkoustikPiano.reg", 10) FileWrite($hFileOpen, $sFile_Content) FileClose($hFileOpen) |
|
------- Отправлено: 00:55, 16-06-2009 | #13 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Это очень интересно! Очень хорошо!
; это зачем, пустая переменная? $sRegKeyName = "" ; а как используется выключатель, ведь далее в коде ни @OSArch ни x86 нигде не встречается!? ; а понял, наверное ядро само уже подставляет всюду переменные когда имеется такой блок: (типа директивы) Switch @OSArch Case "x86" $sRegKeyName = "HKLM\Software\Native Instruments\AkoustikPiano" Case "x64" $sRegKeyName = "HKLM\Software\Wow6432Node\Native Instruments\AkoustikPiano" EndSwitch $InstallDir = RegRead($sRegKeyName, "InstallDir") $sFile_Content = _ "Windows Registry Editor Version 5.00" & @CRLF & @CRLF & _ "[" & $sRegKeyName & "]" & @CRLF & _ '"SYSTEMID"=' & $sysID & @CRLF & @CRLF ; я не ошибусь если именно тут < буду наращивать регфайл содержимое ещё? ; ато тестировать сразу сложно под две платформы, вообще мне такой код позарез всегда нужен! $hFileOpen = FileOpen($InstallDir & "\AkoustikPiano.reg", 10) FileWrite($hFileOpen, $sFile_Content) FileClose($hFileOpen) |
------- Отправлено: 12:49, 16-06-2009 | #14 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата semiono:
Цитата:
Цитата:
|
|||
------- Отправлено: 14:14, 16-06-2009 | #15 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
Creat0R, мне очень помогло использование Switch для архитектуры. Я это буду применять относительно всего кода. Но посмотри, всё ли правильно, нельзя ли оптимизировать? Так как много реестр записей может быть, то получается много свитчеров каждый из которых занимает по шесть строк. Хотя я лично думаю что это никак не изменишь наверное. Ну тогда и так хорошо. И ещё, я решил это вначале кода писать, так как это полюбому глобально для всей программы. Вот пример, всё ли правильно? Или сократить можно? #Include <Clipboard.au3> #include <GuiTab.au3> Switch @OSArch Case "x86" $sRegApps = "HKEY_LOCAL_MACHINE\Software\Native Instruments\AkoustikPiano" Case "x64" $sRegApps = "HKEY_LOCAL_MACHINE\Software\Wow6432Node\Native Instruments\AkoustikPiano" EndSwitch Switch @OSArch Case "x86" $sRegVSTs = "HKEY_LOCAL_MACHINE\Software\VST" Case "x64" $sRegVSTs = "HKEY_LOCAL_MACHINE\Software\Wow6432Node\VST" EndSwitch RegDelete($sRegApps,"KEY") RegDelete($sRegApps,"SNO") RegDelete($sRegApps,"SYSTEMID") ProgressOn("Running...","","") ProgressSet(100) BlockInput(1) ; далее тут работы с окном, в которых тоже используются переменные реестра ; так что тоже удобно $sRegApps, $sRegVSTs по архитектуре передавать. BlockInput(0) ProgressOff() ; тут практически твой код, только на два файла уже... $sDir1 = RegRead($sRegApps, "InstallDir") $sDir2 = RegRead($sRegVSTs, "VSTPluginsPath") & "\AkoustikPiano" $sFile_Content = _ "Windows Registry Editor Version 5.00" & @CRLF & @CRLF & _ "[" & $sRegApps & "]" & @CRLF & _ '"SNO"="' & $SNO & '"' & @CRLF & _ '"SYSTEMID"="' & $sysID & '"' & @CRLF & _ '"KEY"="' & $KEY & '"' & @CRLF & @CRLF $hFileOpen = FileOpen($sDir1 & "\AkoustikPiano.reg", 10) FileWrite($hFileOpen, $sFile_Content) FileClose($hFileOpen) $hFileOpen = FileOpen($sDir2 & "\AkoustikPiano.reg", 10) FileWrite($hFileOpen, $sFile_Content) FileClose($hFileOpen) Есть идея, а нельзя ли свитчеры с описанием реестра x86_x64 вынести в инклюд - внешний скрипт? Только так чтоб это было универсально, чтоб потом в самом коде можно было какугодно писать без проблем? Да и сам инклюд чтоб можно было независимо наращивать, ключей добавлять? Я практически наверное сам уже на это отвечаю, но может быть я не знаю чегото важного тут? |
|
------- Отправлено: 15:04, 17-06-2009 | #16 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата semiono:
Switch @OSArch Case "x86" $sRegApps = "HKEY_LOCAL_MACHINE\Software\Native Instruments\AkoustikPiano" $sRegVSTs = "HKEY_LOCAL_MACHINE\Software\VST" Case "x64" $sRegApps = "HKEY_LOCAL_MACHINE\Software\Wow6432Node\Native Instruments\AkoustikPiano" $sRegVSTs = "HKEY_LOCAL_MACHINE\Software\Wow6432Node\VST" EndSwitch $hFileOpen = FileOpen($sDir1 & "\AkoustikPiano.reg", 10) FileWrite($hFileOpen, $sFile_Content) FileClose($hFileOpen) FileCopy($sDir1 & "\AkoustikPiano.reg", $sDir2 & "\AkoustikPiano.reg", 8+1) Цитата semiono:
|
||
------- Отправлено: 15:36, 17-06-2009 | #17 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
а сам контент как возможность какраз таки и проморгал. А с копированием тоже хорошая идея, хотя я и подумаю, но наверное она лучше конечно! Цитата Creat0R:
|
||
------- Отправлено: 22:51, 17-06-2009 | #18 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Ctrl+Alt+Delete в WelcomeSreeen | Klinifin | Microsoft Windows 2000/XP | 5 | 05-04-2009 14:43 | |
ALTLinux - [решено] нет файла menu.lst | hub-lex | Общий по Linux | 20 | 04-04-2009 00:07 | |
ASUS R50 постоянно горит индикатор Zzz | Dis74 | Ноутбуки | 4 | 12-01-2009 11:47 | |
В XCOPY не работает EXCLUDE | AlexKKK | Microsoft Windows NT/2000/2003 | 3 | 15-02-2008 14:52 | |
Delete | khvalera | Программирование и базы данных | 7 | 08-12-2003 17:01 |
|