В русской локализации даDragokas написал(а):
Это точно Нужно ! А то у меня был скрипт который переименовывал курейт в xyz.pif:: Изменить рабочий каталог на каталог, из которого запускается батник
cd /d "%~dp0"
@echo off
Chcp 866 >nul
title Пункт меню "Создать..."
SetLocal EnableExtensions
call :GetSystemVersion "OSVer" "Core" "Build" "Family" "EnvironCore"
if "%Family%"=="Vista" if "%1" neq "Admin" call :elevate
chdir /d "%~dp0"
(
echo @echo off
echo SetLocal EnableExtensions EnableDelayedEpansion
echo Chcp 866 ^>nul
echo title text title
echo cd /d "%~dp0"
echo.
echo.
echo.
echo pause
echo exit /B
) > "%~dp0new.bat"
copy /y "%~dp0new.bat" %systemdrive%\Windows\ShellNew
reg.exe add "HKCR\.bat\ShellNew" /ve /f
reg.exe add "HKCR\.bat\ShellNew" /v FileName /d New.bat /f
del /q "%~dp0new.bat"
cls
Echo Пункт создан,перезагрузите компьютер.
Echo Для выхода нажмите Enter
pause>nul
exit /B
:Elevate
Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"Admin","","runas",1 >"%~dp0Elevating.vbs"
cscript.exe //nologo "%~dp0Elevating.vbs" "%~dpnx0"
del "%~dp0Elevating.vbs"
Exit
:GetSystemVersion [OSVersion] [OSCore] [OSBuild] [OSFamily] [EnvironmentCore]
Set xOS=x64& If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x32
set %~5=x32& if "%xOS%"=="x64" echo "%PROGRAMFILES%" |>nul find "x86" || set %~5=x64
set "%~2=%xOS%"
set _key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "CurrentBuildNumber"^|Find "CurrentBuildNumber"') do set "%~3=%%~b"
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "CurrentVersion"^|Find "CurrentVersion"') do set "_ver=%%~b"
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "ProductName"^|Find "ProductName"') do set "%~1=%%~b"
if "%_ver:~0,1%"=="6" (set "%~4=Vista") else (set "%~4=NT")
Exit /B
echo cd /d "%~dp0"
@echo off
SetLocal EnableExtensions EnableDelayedEpansion
Chcp 866 >nul
title Заголовк
cd /d "C:\Users\Fire\Documents\"
pause
exit /B
@echo off
Chcp 866 >nul
title Пункт меню "Создать..."
SetLocal EnableExtensions
ver |>NUL find "6." && if "%1" neq "Admin" call :elevate
chdir /d "%~dp0"
(
echo @echo off
echo SetLocal EnableExtensions EnableDelayedEpansion
echo Chcp 866 ^>nul
echo title text title
echo cd /d "%%~dp0"
echo.
echo.
echo.
echo pause
echo exit /B
) > "%~dp0new.bat"
copy /y "%~dp0new.bat" %systemdrive%\Windows\ShellNew
reg.exe add "HKCR\.bat\ShellNew" /ve /f
reg.exe add "HKCR\.bat\ShellNew" /v FileName /d New.bat /f
del /q "%~dp0new.bat"
cls
Echo Пункт создан,перезагрузите компьютер.
Echo Для выхода нажмите Enter
pause>nul
Exit /B
:Elevate
Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"Admin","","runas",1 >"%~dp0Elevating.vbs"
cscript.exe //nologo "%~dp0Elevating.vbs" "%~dpnx0"
del "%~dp0Elevating.vbs"
Exit
@echo off
Chcp 866 >nul
title Пункт меню "Создать..."
SetLocal EnableExtensions
ver |>NUL find "6." && if "%1" neq "Admin" call :elevate
chdir /d "%~dp0"
(
echo @echo off
echo SetLocal EnableExtensions EnableDelayedExpansion
echo Chcp 866 ^>nul
echo title text title
echo cd /d "%%~dp0"
echo.
echo.
echo.
echo pause
echo exit /B
) > "%~dp0new.bat"
md %systemdrive%\Windows\ShellNew 2>NUL
copy /y "%~dp0new.bat" %systemdrive%\Windows\ShellNew\
reg.exe add "HKCR\.bat\ShellNew" /ve /f
reg.exe add "HKCR\.bat\ShellNew" /v FileName /d New.bat /f
del /q "%~dp0new.bat"
cls
Echo Пункт создан,перезагрузите компьютер.
Echo Для выхода нажмите Enter
pause>nul
Exit /B
:Elevate
Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"Admin","","runas",1 >"%~dp0Elevating.vbs"
cscript.exe //nologo "%~dp0Elevating.vbs" "%~dpnx0"
del "%~dp0Elevating.vbs"
Exit
похоже что все таки у тебя)))У тебя классно получилось
@echo off
::Включаем режим выполнения команд без сообщений
SetLocal EnableExtensions EnableDelayedEpansion
:: Включение локализации изменений среды в пакетном файле
Chcp 866 >nul
:: Включение кодировки 866 для того что бы русский текст не был кракозябрами в сценарии
title text title
:: Значение после первого слова title будет отображаться в названии исполняемого пакетного файла
cd /d "%~dp0"
:: Переход в текущий каталог,сокращает код с параметрами типа del bat.bat вместо del %~dp0bat.bat
::То есть при работе с файлами в папке с bat сценарием не надо дописывать аргументы
:: И при этом вы не рискуете по ошибке запороть систему командой типа: del bat.bat
::Не имеющей в скрипте аргумента cd /d "%~dp0"
pause
:: До того как будет написана финальная версия кода команда pause будет полезная для выявления ошибок и багов
::Либо для принятия решения о доработке кода
exit /B
Выход из текущего пакетного сценария.
@echo off
Chcp 866 >nul
title Очистка папки Temp
SetLocal EnableExtensions
call :GetSystemVersion "OSVer" "Core" "Build" "Family" "EnvironCore"
if "%Family%"=="Vista" if "%1" neq "Admin" call :elevate
cd /d "%~dp0"
attrib -r -s -a -h -i %tmp%\* /s /d
del /f /s /q /a r s h a i l %tmp%\* >LogDel.txt
pause >nul
echo Для выхода нажмите Enter
exit
:Elevate
Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"Admin","","runas",1 >"%~dp0Elevating.vbs"
cscript.exe //nologo "%~dp0Elevating.vbs" "%~dpnx0"
del "%~dp0Elevating.vbs"
Exit
:GetSystemVersion [OSVersion] [OSCore] [OSBuild] [OSFamily] [EnvironmentCore]
Set xOS=x64& If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x32
set %~5=x32& if "%xOS%"=="x64" echo "%PROGRAMFILES%" |>nul find "x86" || set %~5=x64
set "%~2=%xOS%"
set _key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "CurrentBuildNumber"^|Find "CurrentBuildNumber"') do set "%~3=%%~b"
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "CurrentVersion"^|Find "CurrentVersion"') do set "_ver=%%~b"
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "ProductName"^|Find "ProductName"') do set "%~1=%%~b"
if "%_ver:~0,1%"=="6" (set "%~4=Vista") else (set "%~4=NT")
Exit /B
pause
SetLocal
:: Чтобы изменение переменных в этом батнике не влияли на другие батники, запускаемые по цепочке.
:: Для быстрого обнуления всех переменных (особенно актуально для псевдо-массивов), используя команду EndLocal
SetLocal EnableExtensions
:: разрешение использовать дополнительных ключей команд (например FOR /F) и других защит от дурака,
:: например, переход в папку с пробелами без указания кавычек в пути (например CD My Tools)
SetLocal EnableDelayedEpansion
:: Возможность получить актуальное значение переменной внутри цикла или блока команд,
:: например указывая вместо %time% знаки восклицания !time!
) > "%~dp0new.cmd"
md %systemdrive%\Windows\ShellNew 2>NUL
copy /y "%~dp0new.cmd" %systemdrive%\Windows\ShellNew\
reg.exe add "HKCR\.cmd\ShellNew" /ve /f
reg.exe add "HKCR\.cmd\ShellNew" /v FileName /d New.cmd /f
del /q "%~dp0new.cmd"
@echo off
Chcp 866 >nul
title Пункт меню "Создать..."
(
echo @echo off
echo SetLocal EnableExtensions EnableDelayedEpansion
echo Chcp 866 ^>nul
echo title Заголовк
echo cd /d "%~dp0"
echo.
echo.
echo.
echo pause
echo exit /B
) > "%~dp0new.cmd"
copy /y "%~dp0new.cmd" %systemdrive%\Windows\ShellNew
reg.exe add "HKCR\.cmd\ShellNew" /ve /f
reg.exe add "HKCR\.cmd\ShellNew" /v FileName /d New.cmd /f
del /q "%~dp0new.cmd"
pause
Можно над иконкой подумать)))А вообще, иконка родного CMD мне как-то дружелюбнее выглядит.
она по умолчанию уже есть в ОС >VistaПапку ShellNew нужно создавать обязательно.
К сожалению, %~dp0 приходится писать везде, т.к. cd %~dp0 не работает для батников в сети.К тому же после этой команды можешь у себя везде поубирать приставки к путям вида %~dp0, так как ты гарантированно уже находишься именно в каталоге с батником.
У cmd такие же возможности как у bat-файлов. Просто в своё время MS ввёл дополнительное расширение, чтобы отличать батники для XP от батников для 9x. Другими словами, можно было дать батнику использующему возможности командного интерпретатора XP расширение CMD и быть уверенным, что его не попытаются запустить на 9x.Просто у CMD более широкие возможности.
Есть, но называется она "Шаблоны"В крайнем случае в комментарий к строке для себя напишем, что Shellnew нет в XP.
@echo off
echo Информация о папке с заготовками файлов
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Templates
echo Информация об имени файла
reg query HKCR\.wav\ShellNew
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
Chcp 866 >nul
title %computername%
cd /d "%~dp0"
pause
exit /B
@echo off
Chcp 866 >nul
title Пункт меню "Создать..."
SetLocal EnableExtensions
ver |>NUL find "6." && if "%1" neq "Admin" call :elevate
chdir /d "%~dp0"
(
echo @echo off
echo SetLocal EnableExtensions EnableDelayedExpansion
echo Chcp 866 ^>nul
echo title %%computername%%
echo cd /d "%%~dp0"
echo.
echo.
echo.
echo pause
echo exit /B
) > "%~dp0new.cmd"
md %systemdrive%\Windows\ShellNew 2>NUL
copy /y "%~dp0new.cmd" %systemdrive%\Windows\ShellNew\
reg.exe add "HKCR\.cmd\ShellNew" /ve /f
reg.exe add "HKCR\.cmd\ShellNew" /v FileName /d New.cmd /f
del /q "%~dp0new.cmd"
cls
Echo Пункт создан,перезагрузите компьютер.
Echo Для выхода нажмите Enter
pause>nul
Exit /B
:Elevate
Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"Admin","","runas",1 >"%~dp0Elevating.vbs"
cscript.exe //nologo "%~dp0Elevating.vbs" "%~dpnx0"
del "%~dp0Elevating.vbs"
Exit
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?