JN_0029:批处理文件语法 创建快捷方式 管理员身份运行 批处理添加自启动程序
按顺序 延时启动程序:
@echo off ping localhost -n 5 >null start C:\MyProgram\Sublime3\sublime_text.exe ping localhost -n 10 >null start "" "C:\Program Files\Mozilla Firefox\firefox.exe" exit
批处理添加自启动程序
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /ve /t REG_SZ /d "c:\1.exe"
创建快捷方式
:: by 琥珀君创建快捷方式 @echo off echo set WshShell = WScript.CreateObject("WScript.Shell")>tmp.vbs :: 设置快捷方式的放置位置,前提是目录已经存在 echo set oShellLink = WshShell.CreateShortcut("%~dp0" ^& "\me\Chrome.lnk")>>tmp.vbs :: 设置快捷方式的目标位置,前提是目标目录已经存在 echo oShellLink.TargetPath ="%~dp0App\wg\chrome.exe">>tmp.vbs echo oShellLink.WindowStyle ="1">>tmp.vbs :: 设置快捷方式的目标位置,前提是目标目录已经存在 echo oShellLink.IconLocation = "%~dp0App\wg\chrome.exe">>tmp.vbs echo oShellLink.Description = "">>tmp.vbs echo oShellLink.WorkingDirectory = "%~dp0">>tmp.vbs echo oShellLink.Save>>tmp.vbs call tmp.vbs del /f /q tmp.vbs
关闭cmd窗口
ctrl + c
启动本地EXE程序
start F:/MyProgram/Sublime3/sublime_text.exe
启动带空格路径的程序写法,杀死程序
bat脚本要打开有空格的路径,start后面必须加引号,exe路径也要加引号
echo start "" "C:\Program Files\erwin\Data Modeler r9\erwin.exe" :等待10秒 :ping 127.0.0.1 -n 10 :杀死进程 taskkill /f /im erwin.exe echo
1,通过批处理添加环境变量
@echo off ::设置要永久加入到path环境变量中的路径度 set My_PATH=D:\AppFolder set PATH=%PATH%;%My_PATH% reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "Path" /t REG_EXPAND_SZ /d "%PATH%" /f exit
SETX 永久设置用户环境变量 SETX /M 永久设置系统环境变量 SET 临时设置用户环境变量 SET /M 临时设置系统环境变量 setx/m Path "%Path%;D:\EsunWebServer\node_global" exit
2,自动以管理员身份运行批处理文件
@echo off >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' NEQ '0' ( goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" exit /B :gotAdmin if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
这里填写批处理代码
setx/m Path "%Path%;D:\EsunWebServer\node_global"
exit
使用批处理加入防火墙白名单
add rule: netsh advfirewall firewall add rule name="MyApp" dir=in action=allow program="C:\MyApp.exe" delete rule: netsh advfirewall firewall delete rule name="MyApp" program="C:\MyApp.exe" 使用批处理将当前目录下的”*.exe”都加入到白名单中: addfirewall.bat for %%a in (*.exe) do ( netsh advfirewall firewall add rule name="%%a" dir=in action=allow program="%cd%\%%a" )
琥珀君的博客