分享学习心得,记录学习笔记
文章:44   访问:119511
今天是:
2020年02月19日 星期三
  >   文章列表   >   文章详情
【批处理文件】
检测是否是管理员身份运行
@echo off
:CheckAdmin
if not exist %WINDIR%\HelpPane.exe goto Main
title 检查是否以管理员身份运行
setlocal EnableDELAYEDEXPANSION
set UAC=0
for /f "usebackq delims==" %%i in (`tasklist /fi "WINDOWTITLE eq 管理员: 检查是否以管理员身份运行"`) do (
set "cmdline=%%i"
set "cmdline=!cmdline:~0,7!"
if "!cmdline!" == "cmd.exe" set UAC=1
)
if "%UAC%" == "1" goto Main
echo.
echo 你没有以管理员身份运行当前批处理程序,这样可能会出错,是否要继续?
echo.
set /p xj=Y: 继续 N: 退出
if "%xj%"=="Y" goto Main
if "%xj%"=="y" goto Main
goto End
:Main
PUSHD %~DP0 &TITLE 绿化和卸载
mode con cols=36 lines=20
color 2F
:Menu
Cls


批处理变量定义及批处理for使用方法
1.如果是 %a% 这种形式 ,就是变量的引用
@echo off
set a=123 (定义一个变量a 赋值为123)
echo %a% (显示出变量a的值(如果不加% %系统会把a当字符处理了,不会当成变量的) )
pause

2.简单运算
set /p a=请输入 (“/p”可以让用户自己输入)
set b=22
set /a c=%a%+%b% (“/a”基本运算标志)
echo %c%
pause

3.%%i 这种变量是for 语句里面 特有的变量(还有一种是外部变量,接受外部参数的格式是%1 -%9 共9个变量),只有在批处理里面才写 两个 %% 号表示变量,cmd中只用 一个 % 号。反正只要你在批处理文件里面用 for,变量就用 %%。例如

批处理中的写法
for %%i in (1 2 3 4 5 ) do echo %%i
为什么批处理中用两个 %%,其实是编译器编译的时候要屏蔽一个%
在cmd窗口中写法

for %i in (1 2 3 4 5 ) do echo %i

批处理显示文本内容
type a.txt

判断文件是否存在
if exist c:\a.exe (start a.exe) else echo 文件不存在.

创建快捷方式
@echo off
set "path=C:\My File\绿色制作\备份\启动服务\123.txt"
set "name=快捷方式"
set m="%userprofile%\desktop\%name%.url"
echo [InternetShortcut] >>%m%
echo URL="%path%" >>%m%
echo IconIndex=10 >>%m%
echo IconFile=C:\windows\system32\shell32.dll >>%m%
pause

查看当前目录
set ml=%cd%
echo %ml%
管理员身份运行不能获取当前路径?
在批处理命令最顶部加 cd /d %~dp0


1.【批处理,原样显示】
echo
【后台操作不显示】
@ECHO Off

2.【批处理任意键结束】
pause

3.【批处理查看局域网设备】
COLOR 0ACLS@ECHO OffTitle 查询局域网内在线电脑IP:send@ECHO off&setlocal enabledelayedexpansionECHO 正在获取本机的IP地址,请稍等... for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do ( set "IP=%%i" set IP=!IP:~1,-1! ECHO 本机IP为:!IP! goto :next ):next for /f "delims=. tokens=1,2,3,4" %%i in ("%IP%") do set range=%%i.%%j.%%k ECHO.&ECHO 正在获取本网段内的其它在线计算机名,请稍等... ECHO 本网段【%range%.*】内的计算机有: for /f "delims=" %%i in ('net view') do ( set "var=%%i" ::查询在线计算机名称 if "!var:~0,2!"=="\\" ( set "var=!var:~2!" ECHO !var! ping -n 1 !var!>nul )) ECHO.ECHO 正在获取本网段内的其它在线计算机IP,请稍等... for /f "skip=3 tokens=1,* delims= " %%i in ('arp -a') doECHO IP: %%i 正在使用ECHO.ECHO 查询完毕,按任意键退出...pause

4.【批处理输出txt文本】
echo 需要输出的内容>> d:\a.txt

5.【添加等待时间】
set WshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 3000

6.【批处理接受用户输入】
@echo off
set /p var=请输入用户名: //使用set进行设置变量,并使用/p参数让命令暂停运行,提供用户在cmd窗口输入变量的机会
echo 您输入的用户名为%var%
@echo %var%>>1.txt
pause

7.【VBS启动程序不等待其结束】
Set ws = CreateObject("WScript.Shell")ws.Run "1.jpg",0

8.【离线安装.NET 3.5(解决在线下载 慢的不能再慢的速度)】
1.选择系统镜像文件(前提是你得有系统镜像文件)2.右键选择装载,会自动打开装载之后的文件目录,记住盘符(我的是H)3.WIN + X 启动管理员权限的命令提示符 输入 dism.exe /online /enable-feature /featurename:netfx3 /Source:H:\sources\sxs注意“H”为挂在的盘符
9.【打开cmd保持待命状态】
cmd /k
10.【光盘、U盘自动运行】
新建autorun.inf文件,内容如下[autorun]open=CSetup.exeICON=logo.ico

友情链接 doywb

2018-2019 Copyright© 米灵尔 小熊 豫ICP备15007436号-1

豫公网安备 41152302000146号