Windows批处理程序bat
@echo off 关闭回显,否则脚本中的命令都会输出,关闭后只显示结果。
setlocal ENABLEDELAYEDEXPANSION 在for循环中变量扩展时需要用到
copy /Y mstsc.cmd %SYSTEMROOT%\ 将文件复制到C:\windows目录下面
regedit.exe /s mstsc.reg 注册开机启动项
taskkill /IM explorer.exe /f kill掉桌面进程
start /WAIT newip.cmd 在主进程中启动一个新的线程,并等待其结束
start /WAIT iexplore.exe http://wakeup.com:8080/wol 启动IE浏览器,进程远程唤醒
start /WAIT mstsc.exe /f /multimon /public /v:%ip% 启动远程连接
echo 您好! 输出显示一句话
ping 127.0.0.1 -n 6 > nul 延迟执行6秒的时间
设置窗口大小和字体颜色:
color 0a
MODE con: COLS=100 LINES=20
mstsc.exe /? 帮助文档
自定义选项并根据结果进行判断:
choice /c yn /m "输入Y表示更换ip,输入N表示保持原来的ip不变"
if %errorlevel%==1 (set /p ip=请输入新的ip地址:
echo !ip! > C:\windows\ip.txt
)
读取文件中的内容:
for /f %%i in (C:\windows\ip.txt) do (
set ip=%%i
)
kill掉某个进程:
for /f "tokens=2 " %%a in ('TASKLIST /V /FI "WINDOWTITLE eq prob - prob.cmd"') do (
set pid=%%a
)
taskkill /pid %pid%
如何检测是否能够ping同其他机器:
set flag=0
for /f "tokens=4,4 delims= " %%a in ('ping -n 1 %ip%^|find "回复"^|sort /r') do (
if "%%a" equ "字节=32" (set flag=1)
)
if %flag% == 1 (
start /WAIT alreadyStart.cmd
goto MSTSC
)else (
start /WAIT shouldStart.cmd
goto WEB
)
如何请求管理员权限:
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
goto UACPrompt
)
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B