delete C:\*.* /exclude=zzz.lst ?
У меня на C: лежат файлы, к примеру -
/~ [папка] /BOOT.INI /NTDETECT.COM /NTLDR как мне удалить всё остальное исключив этот полезный контент? вариант с батником если не трудно тоже пожалуйста, так как разные бывают задачи? |
Код:
#include <File.au3> |
C:\Folder - это для чего? Какраз из этой папки и удаляет! Хотя я хотел папку как исключение.
Я переименовал C:\Folder в свой каталог винды C:\~ и скрипт снёс все потроха винды, что только смог :) Хотя результат ожидался обратный. Причём мусор всякий на диске C:\ так и остался не тронутым. C:\~ (винда) C:\Ultra$ISO C:\BOOT.INI C:\desktop.ini C:\h2r3F.tmp C:\h2r35.tmp C:\h2r86.tmp C:\New AutoIt v3 Script.au3 C:\NTDETECT.COM C:\NTLDR C:\PrePict.htm C:\Rar$CM06.422 C:\Rar$SF06.203 C:\RECYCLED - это у меня файл ;-) C:\z.cmd C:\z.reg |
Цитата:
|
Цитата:
Цитата:
Что именно нужно сделать? Удалить всё на диске C: кроме указанных файлов? подробнее задачу следует описывать... |
Цитата:
Цитата:
Если указать что удалять, то можно и батником. Надо указать наоборот то, что не следует удалять. Я хотел удалить всё с диска C: кроме папки виндовс и загрузочных файлов. Program Files и Documents and Settings у меня там нет. Хотя не помешало бы обойти стороной корзину и system volume information, хотя у меня лично таких папок нет, и pagefile.sys тоже не плохо бы учесть, опять же на всякий случай, но можно и не учитывать. ;) |
Цитата:
Цитата:
Цитата:
Код:
#include <File.au3> |
Код:
Else $sPath = @SystemDrive :) а почему нету такого? Помниться как в WinAPI я искал @WorkingDir, там это тоже через голову надо было перевернуться... lstrcat 0_0 |
|
Оффтопик... Пожалуйста!!
Код: Код:
$InstallDir = RegRead("HKLM\Software\Native Instruments\AkoustikPiano","InstallDir") если x86 WinXP то обычно HKLM\Software\Native Instruments..... если x64 WinXP то так HKLM\Software\Wo6432Node\Native Instruments.... как можно такой код зделать? что вообще с этим @OSArch делать? так чтоли If @OSArch = 1 then... ??? И как лучше, два блока написать для разных архитектур, или зделать одну переменную $var под ветку реестра, которую потом менять по условию? Напишите полностью код? Если понятно конечно что я спрашиваю? :) Да впринцыпе тут всё просто, в разных x86 x64 запись реестра может быть в разных местах, и различием будет лишь Wo6432Node |
Цитата:
В справке ведь оно всё написано. |
Точно! Всё легко получилось, просто ифов понаставил как есть, я думал сложнее будет!
Кстати в хелпе мало написанно, я бы ещё долго думал, как If @OSArch = "x86" Then составить, я бы комплексовал бы, как обычно кода боюсь. Код:
If @OSArch = "x86" Then пришлось к AutoIt обращаться, как всегда только это и выручает! |
Цитата:
Что касается кода выше, то можно укоротить: Код:
$sRegKeyName = "" |
Это очень интересно! Очень хорошо!
; это зачем, пустая переменная? $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) |
Цитата:
Цитата:
Цитата:
|
Цитата:
Creat0R, мне очень помогло использование Switch для архитектуры. Я это буду применять относительно всего кода. Но посмотри, всё ли правильно, нельзя ли оптимизировать? Так как много реестр записей может быть, то получается много свитчеров каждый из которых занимает по шесть строк. Хотя я лично думаю что это никак не изменишь наверное. Ну тогда и так хорошо. И ещё, я решил это вначале кода писать, так как это полюбому глобально для всей программы. Вот пример, всё ли правильно? Или сократить можно? Код:
#Include <Clipboard.au3> Есть идея, а нельзя ли свитчеры с описанием реестра x86_x64 вынести в инклюд - внешний скрипт? Только так чтоб это было универсально, чтоб потом в самом коде можно было какугодно писать без проблем? Да и сам инклюд чтоб можно было независимо наращивать, ключей добавлять? Я практически наверное сам уже на это отвечаю, но может быть я не знаю чегото важного тут? |
Цитата:
Код:
Switch @OSArch Код:
$hFileOpen = FileOpen($sDir1 & "\AkoustikPiano.reg", 10) Цитата:
|
Цитата:
а сам контент как возможность какраз таки и проморгал. А с копированием тоже хорошая идея, хотя я и подумаю, но наверное она лучше конечно! Цитата:
|
Время: 10:28. |
Время: 10:28.
© OSzone.net 2001-