Показать полную графическую версию : [решено] Скрипт для создания деинсталлятора файлов в папке.
Corsag21
12-09-2010, 07:56
Добрый день.
1) Напишите пожалуйста скрипт, чтобы он создавал скрипт для удаления всех файлов в папке, которую я указываю.
2) Как сделать, чтобы этот скрипт можно было запускать через клик правой кнопкой мыши по папке?
El Sanchez
12-09-2010, 14:43
Напишите пожалуйста скрипт, чтобы он создавал скрипт для удаления всех файлов в папке, которую я указываю »
Это всего лишь одна команда:
Del /F /Q "путь к папке"
Как сделать, чтобы этот скрипт можно было запускать через клик правой кнопкой мыши по папке? »
Так как в задании не оговорено удалять файлы из подпапок и/или подпапки, то:
@Echo Off
Reg Add "HKCR\Directory\shell\DeletFilesFromFolder" /v MUIVerb /d "Удалить файлы из папки" /f >nul
Reg Add "HKCR\Directory\shell\DeletFilesFromFolder\command" /ve /d "cmd /c Start /MIN \"\" cmd /c \"Del /F /Q \"%%1\" ^>nul\"" /f >nul
Corsag21
12-09-2010, 16:49
Извиняюсь, не совсем ясно выразился. Этот скрипт мне нужен для удобного удаления плагинов в tes4 oblivion. Все плагины кидаются в папку Data, и если нужно удалить один плагин, то приходится искать все файлы, которые относятся к плагину и удалять их по отдельности, тем более они находятся в разных подпапках. Поэтому мне бы хотелось, чтобы до копирования плагина я мог сделать скрипт .bat или типа того такого вида:
del \meshes\dungeons\AyleidRuins\exterior\OOOardoor01Varastal.nif
del \Textures\dungeons\misc\OOOSpawnFishCrates\duncrate01OOO.dds
и т. д.
для всех файлов в нужной папке.
El Sanchez
14-09-2010, 11:06
Corsag21, понятно.
Так как я не знаю вашей ОС, то предложу 2 варианта - для WinXP и Win7(/Vista?)
Для XP:
@Echo Off
Set DataDir=C:\Program Files\Oblivion\Data
Set SourcePlugin=C:\Installs\Games\Oblivion\OblivionPatches
:: ================================
Set DataDir=%DataDir:(=^^^^(%
Set DataDir=%DataDir:)=^^)%
SetLocal EnableDelayedExpansion
For /D %%A In ("%SourcePlugin%\*") Do (
Echo @Echo Off>"%%A\Install %%~nA.bat"
Echo Reg Query "HKCR\Directory\shell\DeletePlugin_%%~nA" /v Extended 1^>nul 2^>^&1^&^&GoTo :UnInstall^|^|GoTo :Install>>"%%A\Install %%~nA.bat"
Echo.>>"%%A\Install %%~nA.bat"
Echo :Install>>"%%A\Install %%~nA.bat"
Echo Reg Add "HKCR\Directory\shell\DeletePlugin_%%~nA" /v MUIVerb /d "Удалить плагин %%~nA" /f 1^>nul 2^>nul>>"%%A\Install %%~nA.bat"
Echo Reg Add "HKCR\Directory\shell\DeletePlugin_%%~nA" /v Extended /f 1^>nul 2^>nul>>"%%A\Install %%~nA.bat"
Echo Reg Add "HKCR\Directory\shell\DeletePlugin_%%~nA\command" /ve /d "\"%DataDir%\Uninstall %%~nA.bat\"" 1^>nul 2^>nul>>"%%A\Install %%~nA.bat"
Echo Ren %%0 "Uninstall %%~nA%%~x0">>"%%A\Install %%~nA.bat"
Echo GoTo :EOF>>"%%A\Install %%~nA.bat"
Echo.>>"%%A\Install %%~nA.bat"
Echo :UnInstall>>"%%A\Install %%~nA.bat"
For /F "Tokens=*" %%B In ('Dir /B /S /A-D "%%A" 2^>nul') Do (
Set SourceFilePath=%%B
Call Set DestFilePath=%%SourceFilePath:%%A=%DataDir%%%
If /I Not "%%~nB"=="Install %%~nA" Echo Del /F /Q "!DestFilePath!" ^>nul>>"%%A\Install %%~nA.bat"
)
Echo Reg Delete "HKCR\Directory\shell\DeletePlugin_%%~nA" /f 1^>nul 2^>nul>>"%%A\Install %%~nA.bat"
Echo Del /F /Q %%0 ^>nul>>"%%A\Install %%~nA.bat"
)
Для Win7:
@Echo Off
Set DataDir=C:\Program Files\Oblivion\Data
Set SourcePlugin=C:\Installs\Games\Oblivion\OblivionPatches
:: ================================
Set DataDir=%DataDir:(=^^^^(%
Set DataDir=%DataDir:)=^^)%
SetLocal EnableDelayedExpansion
For /D %%A In ("%SourcePlugin%\*") Do (
Echo @Echo Off>"%%A\Install %%~nA.bat"
Echo Reg Query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\CommandStore\shell\%%~nA" /v Icon 1^>nul 2^>^&1^&^&GoTo :UnInstall^|^|GoTo :Install>>"%%A\Install %%~nA.bat"
Echo.>>"%%A\Install %%~nA.bat"
Echo :Install>>"%%A\Install %%~nA.bat"
Echo Reg Add "HKCR\Directory\shell\DeletePlugins" /v MUIVerb /d "Удалить плагины Oblivion" /f ^>nul>>"%%A\Install %%~nA.bat"
Echo Reg Add "HKCR\Directory\shell\DeletePlugins" /v Extended /f ^>nul>>"%%A\Install %%~nA.bat"
Echo Reg Query "HKCR\Directory\shell\DeletePlugins" /v SubCommands 1^>nul 2^>^&1^&^&^(^^>>"%%A\Install %%~nA.bat"
Echo For /F "Tokens=2*" %%%%I In ^('Reg Query "HKCR\Directory\shell\DeletePlugins" /v SubCommands^^^|Find "REG_SZ" 2^^^>nul'^) Do ^^>>"%%A\Install %%~nA.bat"
Echo Reg Add "HKCR\Directory\shell\DeletePlugins" /v SubCommands /d "%%%%J;%%~nA" /f 1^>nul 2^>nul^)^|^|^(^^>>"%%A\Install %%~nA.bat"
Echo Reg Add "HKCR\Directory\shell\DeletePlugins" /v SubCommands /d "PDFViewer" /f 1^>nul 2^>nul^)>>"%%A\Install %%~nA.bat"
Echo Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\CommandStore\shell\%%~nA" /ve /d "Удалить %%~nA" /f ^>nul>>"%%A\Install %%~nA.bat"
Echo Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\CommandStore\shell\%%~nA" /v Icon /d "shell32.dll,-240" /f ^>nul>>"%%A\Install %%~nA.bat"
Echo Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\CommandStore\shell\%%~nA\command" /ve /d "\"%DataDir%\Uninstall %%~nA.bat\"" /f ^>nul>>"%%A\Install %%~nA.bat"
Echo Ren %%0 "Uninstall %%~nA%%~x0">>"%%A\Install %%~nA.bat"
Echo GoTo :EOF>>"%%A\Install %%~nA.bat"
Echo.>>"%%A\Install %%~nA.bat"
Echo :UnInstall>>"%%A\Install %%~nA.bat"
For /F "Tokens=*" %%B In ('Dir /B /S /A-D "%%A" 2^>nul') Do (
Set SourceFilePath=%%B
Call Set DestFilePath=%%SourceFilePath:%%A=%DataDir%%%
If /I Not "%%~nB"=="Install %%~nA" Echo Del /F /Q "!DestFilePath!" ^>nul>>"%%A\Install %%~nA.bat"
)
Echo Reg Delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\CommandStore\shell\%%~nA" /f 1^>nul 2^>nul>>"%%A\Install %%~nA.bat"
Echo For /F "Tokens=2*" %%%%I In ^('Reg Query "HKCR\Directory\shell\DeletePlugins" /v SubCommands^^^|Find "REG_SZ" 2^^^>nul'^) Do Set SubCommand=%%%%J>>"%%A\Install %%~nA.bat"
Echo Set SubCommand=%%SubCommand:%%~nA=;%%>>"%%A\Install %%~nA.bat"
Echo Set SubCommand=%%SubCommand:;;;=;%%>>"%%A\Install %%~nA.bat"
Echo Set SubCommand=%%SubCommand:;;=;%%>>"%%A\Install %%~nA.bat"
Echo If "%%SubCommand%%"==";" ^(Reg Delete "HKCR\Directory\shell\DeletePlugins" /f 1^>nul 2^>nul^&Del /F /Q %%0 ^>nul^)>>"%%A\Install %%~nA.bat"
Echo If Not "%%SubCommand%%"==";" ^(>>"%%A\Install %%~nA.bat"
Echo SetLocal EnableDelayedExpansion>>"%%A\Install %%~nA.bat"
Echo If "^!SubCommand:~0,1^!"==";" Set SubCommand=^^!SubCommand:~1^^!>>"%%A\Install %%~nA.bat"
Echo If "^!SubCommand:~-1^!"==";" Set SubCommand=^^!SubCommand:~0,-1^^!>>"%%A\Install %%~nA.bat"
Echo Reg Add "HKCR\Directory\shell\DeletePlugins" /v SubCommands /d "^!SubCommand^!" /f 1^>nul 2^>nul>>"%%A\Install %%~nA.bat"
Echo Del /F /Q %%0 ^>nul^)>>"%%A\Install %%~nA.bat"
)
Вам нужно будет только изменить пути (выделено красным) к папкам Data (для примера C:\Program Files\Oblivion\Data) и папке с плагинами, предназначенными для установки (для примера C:\Installs\Games\Oblivion\OblivionPatches). Чтобы все работало придерживайтесь следующего:
В папке OblivionPatches должны быть подпапки с уникальными именами с файлами плагинов (например, файлы плагина BlaBlaBla (папки meshes, textures и т.д.) должны быть в папке OblivionPatches в подпапке BlaBlaBla). Уникальное имя подпапки будет фигурировать в контекстном меню, поэтому выбирайте понятные названия.
При запуске одного из этих 2 скриптов в папках плагинов создадутся батники вида Install "имя плагина".bat. Когда захотите установить плагин в игру просто скопируйте все из, например, BlaBlaBla (папки meshes, textures, батник и т.д.) в папку Data игры.
В итоге, если скопировали несколько плагинов, то в папке Data будет несколько батников Install "имя плагина".bat. Запустите те, которые хотите "установить" и прописать в контекстном меню. При этом батник поменяет свое имя на Uninstall "имя плагина".bat. Это значит, что батник готов к удалению файлов плагина и запись в контекстном меню присутствует. Захотите удалить плагин либо запускайте батник, либо через контекстное меню.
Дабы не захламлять контекстное меню записями, вызывайте его при нажатой клавише Shift.
Только для Win7 сделано каскадное меню, для XP каскадное меню без shell extension сделать нельзя, поэтому записи в основном меню.
З.Ы. Надеюсь, понятно объяснил. :)
З.Ы.Ы. Легче полноценный инсталлятор написать, чем инсталлятор на батниках :)
Corsag21
14-09-2010, 17:58
Спасибо
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.