keiran_green

|
Posted: Fri Dec 02, 2011 13:52 Post subject: Скрипт для очистки flash от: "все папки стали ярлыками". |
|
|
Cкрипт отображает скрытые папки на флешке и перемещает найденные ярлыки в отдельную папку.
Код скрипта: Code: | /*
################################################################################
Удаление файлов lnk и восстановление скрытых папок.
последнее изменение 08.12.2011
отображает скрытые папки и перемещает файлы *.lnk в отдельную папку
Использование: скопировать файл в папку или в корень флешки и запустить
PS: проверяет только текущую папку
PPS: для проверки и пермешения файла autorun.inf
в строке
autorun_check = 0;
заменить на
autorun_check = 1;
################################################################################
Для создания кнопки в Total Commander перетащить файл скрипта на панель TC,
в свойствах появившейся кнопки, в поле "параметры" указать '%P%N' (без кавычек)
Использование в ТС: выбрать любой файл/папку в панели и нажать на кнопку.
Для проверки autorun'a дописать в конец строки параметров '/autorun' т.е.
получиться должно так:
'%P%N /autorun'
################################################################################
*/
var
fso = new ActiveXObject("Scripting.FileSystemObject"),
WshShell = WScript.CreateObject("WScript.Shell"),
attr = new Array (17,18,19,20,21,22,23,24,25,26,48,49,50,51,55,56,57,58,null),
autorun_check = 0, //1 - будет проверять наличие файл autorun.inf
s = "",
FldrCnt = 0,
LnkCount = 0,
intButton = -1,
d = new Date(),
DateTime = d.getDay() +"."+ d.getMonth()+"."+d.getYear()
+"#"+d.getHours()+"."+d.getMinutes()+"."+d.getSeconds();
//если был передан аргумент проверки autorun...
if (WScript.Arguments.Named.exists("autorun"))
{
autorun_check = 1;
}
if (autorun_check == 1)
{
autorun_exist = false;
AutorunName = "\autorun_" + DateTime +".inf";
}
if (WScript.Arguments.UnNamed.length == 0)
{
script = fso.GetFile(WScript.ScriptFullName);
f = fso.GetFolder(script.ParentFolder);
fFldrLnk = script.ParentFolder + "\\!ярлыки\\";
text = "Данный скрипт отображает скрытые папки + перемещает\nвсе найденные ярлыки в " +
"папку \"" +fFldrLnk+DateTime+"\\\"\n\nИспользование:\nскопировать скрипт в корень флешки, запустить\nи согласиться на " +
"лечение.\n\nЗапустить лечение в папке \"" + script.ParentFolder + "\" ?"
intButton = WshShell.Popup (text, -1, "Устранение последствий вирусов", 4)
}
if ((WScript.Arguments.UnNamed.length != 0) && (intButton != 6))
{
f = fso.GetFolder(fso.GetParentFolderName(WScript.Arguments(0)));
fFldrLnk = f + "\\!ярлыки\\";
}
if ((intButton == 6) || (WScript.Arguments.UnNamed.length != 0))
{
sFiles = new Enumerator(f.Files )
for (; !sFiles.atEnd(); sFiles.moveNext())
{
ext = fso.GetExtensionName(sFiles.item().Name);
if ((ext == "lnk") ||(ext == "LNK")
||(ext == "Lnk") ||(ext == "LNk")
||(ext == "LNK") ||(ext == "lNK")
||(ext == "lnK") ||(ext == "LnK")
||(ext == "lNk"))
{
if (fso.FolderExists(fFldrLnk) == false)
{
fso.CreateFolder(fFldrLnk)
}
if (fso.FolderExists(fFldrLnk +DateTime+"\\") == false)
{
fso.CreateFolder(fFldrLnk +DateTime+"\\")
}
s = sFiles.item().Name
fso.MoveFile(sFiles.item().Name , fFldrLnk + DateTime+"\\")
LnkCount++;
sFiles = new Enumerator(f.Files);
}
if (autorun_check == 1)
{
if (sFiles.item().Name == "autorun.inf")
{
if (fso.FolderExists(fFldrLnk) == false)
{
fso.CreateFolder(fFldrLnk)
}
sFiles.item().Attributes = 0;
fso.MoveFile(sFiles.item().Name , fFldrLnk + AutorunName )
autorun_exist = true;
sFiles = new Enumerator(f.Files);
}
}
}
fFldr = new Enumerator(f.SubFolders);
for (; !fFldr.atEnd(); fFldr.moveNext())
{
for (i = 0; attr[i] != null; i++)
{
if (fFldr.item().Attributes == attr[i])
{
fFldr.item().Attributes = 0;
FldrCnt++;
break;
}
}
}
s = "Oбработано:\n" +
" скрытых папок: " + FldrCnt +"\n"+
" ярлыков: " + LnkCount ;
if ((autorun_check == 1) && (autorun_exist))
{
s = s + "\n\nОбнаружен и перемещен autorun.inf файл.";
}
WshShell.Popup(s, -1, "Готово", 64)
}
|
Действие скрипта:
- Скрипт проверяет текущую папку на наличие скрытых папок и ярлыков;
- Атрибут "скрытый" у папок убирается;
- Все найденные ярлыки перемещаются в папку "!ярлыки";
- Файл "autorun.inf" переименовывается* (добавляется дата в имя файла) и тоже перемещается в папку "!ярлыки";
* - если проверка autorun файла включена
Last edited by keiran_green on Thu Dec 08, 2011 02:56; edited 5 times in total |
|