Что нового

Скрипт на удаление файла/ярлыка

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 381
Репутация
2 381
Автор
R

renom

Новичок
Сообщения
127
Репутация
2
CreatoR сказал(а):
renom [?]
Возникла проблема с удалением папок
А как связаны папки с данной темой?

В том что не нужен там *:
Код:
DirRemove("C:\Test")

это удалит папку C:\Test и всё что в ней находится.
Ну тема же про удаление...решил новую не создавать,а в старой написать.
То что удалит папку test и всё то,что в ней содержится - это я знаю,но надо бы,чтобы папка test осталась.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
renom

{OverQuoteWarn}
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
renom
Если в папке C:\Test нужно удалить только папки, а файлы оставить, то, как написал Medic84:
Код:
#include <File.au3>

$sPath = 'C:\Test'
$iNoDel = 0
$aDirDel = _FileListToArray($sPath, '*', 2)
If Not @error Then
	For $i = 1 To $aDirDel[0]
		If Not DirRemove($sPath & '\' & $aDirDel[$i], 1) Then
			$iNoDel += 1
		EndIf
	Next
	If $iNoDel Then
		MsgBox(64, $sPath, 'Удалено папок: ' & $aDirDel[0] - $iNoDel & @LF & _
				'Не удалено папок: ' & $iNoDel)
	Else
		MsgBox(64, $sPath, 'Удалено папок: ' & $aDirDel[0])
	EndIf
Else
	Switch @error
		Case 1
			MsgBox(16, 'Error', 'Нет такой папки: ' & $sPath)
		Case 4
			MsgBox(16, 'Error', 'В папке ' & $sPath & ' нет подпапок')
	EndSwitch
EndIf
А если нужно просто очистить эту папку от всего содержимого, то:
Код:
$sPath = 'C:\Test'
DirRemove($sPath, 1)
DirCreate($sPath)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 381
Репутация
2 381
renom [?]
тема же про удаление
Удаление файла/ярлыка... это не значит что удаление чего либо. Получается с таким же успехом можно писать в этой теме про удаление пункта в ListView, удаление скрипта, удаление программ и т.д.?

надо бы,чтобы папка test осталась
Т.е нужно что-то типа DirEmpty?

Код:
_DirEmpty("C:\Test")

Func _DirEmpty($sDir)
	DirRemove($sDir, 1)
	DirCreate($sDir)
EndFunc
 
Автор
R

renom

Новичок
Сообщения
127
Репутация
2
Спасибо,то что нужно.
 

ol1o

Новичок
Сообщения
26
Репутация
0
Кстати говоря. в windows'е 2 рабочего стола, твой и all users.
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
renom
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, Модератор форума.




{TopicSolvedInfo}
 

sov44

Новичок
Сообщения
22
Репутация
0
Re: Придумываем названия тем для новичков

Нашел аналогичную (на мой взгляд) тему, но тема закрыта, вопрос разместить не могу.
Суть вопроса: Необходимо удалить ярлыки и папку с ярлыками из панели быстрого запуска Windows 7. Скрипт почему то не работает :(
Код:
FileDelete("%AppData%\Microsoft\Internet Explorer\Quick Launch\Shows Desktop.lnk")
FileDelete("%AppData%\Microsoft\Internet Explorer\Quick Launch\Window Switcher.lnk")
DirRemove("%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned", 1)
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
657
Re: Придумываем названия тем для новичков

Попробуй так:
Код:
FileDelete(@AppDataDir & "\Microsoft\Internet Explorer\Quick Launch\Shows Desktop.lnk")
FileDelete(@AppDataDir & "\Microsoft\Internet Explorer\Quick Launch\Window Switcher.lnk")
DirRemove(@AppDataDir & "\Microsoft\Internet Explorer\Quick Launch\User Pinned", 1)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 381
Репутация
2 381
Re: Придумываем названия тем для новичков

Zaramot и Александр
Вам предупреждение.
Данная тема не для решения вопросов, а для придумывания названия тем если не заметили.

От вас ожидалось придумать название, а не давать решения проблеме в данной теме.
 

sov44

Новичок
Сообщения
22
Репутация
0
Re: Придумываем названия тем для новичков

CreatoR, похожую тему я нашел(см. мой первый пост). Переместите туда посты или подскажите название новой темы. :smile:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Re: Придумываем названия тем для новичков

Тему разблокировал, сообщения перенес туда
Zaramot, sov44, тема с названиями не для решения проблем. придерживайтесь регламента, пока устное предупреждение
 

sov44

Новичок
Сообщения
22
Репутация
0
Zaramot, скрипт по физическому удалению файлов сработал, но
после перезагрузки ярлыки по умолчанию ( IE, Windows media, Проводник) из из папки User Pinned на панели быстрого запуска остались :(
Подскажите, как их открепить\удалить средствами AutoIt?
 

joiner

Модератор
Локальный модератор
Сообщения
3 189
Репутация
539
у меня работает вот это ( на семерке)
Код:
FileDelete('C:\Users\??????\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\skype.lnk')
 

sov44

Новичок
Сообщения
22
Репутация
0
Александр, скрипт удаления "обычных" ярлыков подсказал Zaramot, после перезагрузки они удаляются, а вот удалить ссылки на ярлыки по умолчанию ( IE, Windows media, Проводник ) из папки User Pinned на панели быстрого запуска (папка User Pinned с ярлыками удалена) не получается. Возможно где то нужно править реестр.
Иными словами ярлыки из панели быстрого запуска ссылаются на папку User Pinned, а самой папки User Pinned в системе нет. :wacko:
хелп! :wall_brake:
 

joiner

Модератор
Локальный модератор
Сообщения
3 189
Репутация
539
нашел на oszone скрипт, который, как я понял, делает то, что нужно. к сожалению я плохо знаю ObjCreate...
как этот скрипт перевести на язык AutoIT?
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 574
Репутация
335
Код:
$objShell = ObjCreate("Shell.Application")
$objFolder = $objShell.Namespace("C:\Users\Medic84\Desktop")
$objFolderItem = $objFolder.ParseName("The Bat! PRO.lnk")
$colVerbs = $objFolderItem.Verbs
For $objVerb in $colVerbs
    If StringReplace($objVerb.name, "&", "") = "Pin to Taskbar" Then $objVerb.DoIt
    If StringReplace($objVerb.name, "&", "") = "Unpin from Taskbar" Then $objVerb.DoIt
    If StringReplace($objVerb.name, "&", "") = "Закрепить программу в панели задач" Then $objVerb.DoIt
    If StringReplace($objVerb.name, "&", "") = "Изъять программу из панели задач" Then $objVerb.DoIt
    If StringReplace($objVerb.name, "&", "") = "Закрепить на панели задач" Then $objVerb.DoIt
    If StringReplace($objVerb.name, "&", "") = "Открепить от панели задач" Then $objVerb.DoIt
Next


Как прикрутить другие папки и имена, наверное додумаешься =)
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 574
Репутация
335
Код:
$objShell = ObjCreate("Shell.Application")
$colVerbs = $objShell.Namespace("C:\Users\Medic84\Desktop").ParseName("The Bat! PRO.lnk").Verbs
For $objVerb in $colVerbs
	$str = StringReplace($objVerb.name, "&", "")
    If  $str = "Pin to Taskbar" or $str = "Unpin from Taskbar" or $str = "Закрепить программу в панели задач" or _
	$str = "Изъять программу из панели задач" or $str = "Закрепить на панели задач" or $str = "Открепить от панели задач" Then $objVerb.DoIt
Next

Уменьшенная версия :smile: Для создания функции из данной штуки :whistle:
 

joiner

Модератор
Локальный модератор
Сообщения
3 189
Репутация
539
в принципе двойное действие в одном скрипте. он и добавляет ярлык в панель быстрого запуска , а если ярлык уже есть то удаляет
Код:
$objShell = ObjCreate("Shell.Application")
$colVerbs = $objShell.Namespace("C:\Program Files (x86)\Skype\Phone").ParseName("skype.exe").Verbs
For $objVerb in $colVerbs
    $str = StringReplace($objVerb.name, "&", "")
    If  $str = "Pin to Taskbar" or $str = "Unpin from Taskbar" or $str = "Закрепить программу в панели задач" or _
    $str = "Изъять программу из панели задач" or $str = "Закрепить на панели задач" or $str = "Открепить от панели задач" Then $objVerb.DoIt
Next
 
Верх