当前位置:首页 » 编程软件 » bat脚本切换

bat脚本切换

发布时间: 2022-07-23 19:08:06

㈠ 怎样使用BAT脚本实现自动按键盘的某个键

批处理是不行的 用VBS 很简单 例子如下
Set objShell = CreateObject("Wscript.Shell")
do
WScript.Sleep 3000
objShell.SendKeys "{F5}"
WScript.Sleep 3000
objShell.SendKeys "{F5}"
loop

使用 SendKeys 方法可以将键击发送到无自动化界面的应用程序中。多数键盘字符都可用一个键击表示。某些键盘字符由多个键击组合而成(例如,CTRL+SHIFT+HOME)。要发送单个键盘字符,请将字符本身作为 string 参数发送。例如,要发送字母 x,则请发送 string 参数 "x"。

可使用 SendKeys 同时发送多个键击。为此,可将每个键击按顺序排列在一起,以此来创建表示一系列键击的复合字符串参数。例如,要发送键击 a、b 和 c,则需要发送字符串参数 "abc" 。SendKeys 方法将某些字符用作字符的修饰符(而不使用其本身的含义)。这组特殊的字符可包括圆括号、中括号、大括号,以及:

加号 "+"
插入记号 "^"
百分号 "%"
和“非”符号 "~"

用大括号 "{}" 括起这些字符可以发送它们。例如,要发送加号,请使用字符串参数 "{+}"。SendKeys中使用的中括号 "[ ]" 无任何特殊含义,但是必须把它们括在大括号中,以便容纳确实要赋予其特殊含义的应用程序(例如,对于动态数据交换 (DDE) 就是这样)。

要发送左中括号字符,请发送字符串参数 "{[}";要发送右中括号字符,请发送字符串参数 "{]}"。
要发送左大括号字符,请发送字符串参数 "{{}";要发送右大括号字符,请发送字符串参数 "{}}"。

某些键击不生成字符(如 ENTER 和 TAB)。某些键击表示操作(如 BACKSPACE 和 BREAK)。要发送这些类型的键击,请发送下表中列出的参数:

空格键 " "
退格键 {BACKSPACE} 或 {BS} 或 {BKSP}
BREAK {BREAK}
DELETE {DELETE} 或 {DEL}
向下键 {DOWN}
向上键 {UP}
向左键 {LEFT}
向右键 {RIGHT}
END {END}
ENTER {ENTER} 或 ~
ESC {ESC}
TAB {TAB}
CAPS LOCK {CAPSLOCK}
HELP {HELP}
HOME {HOME}
INSERT {INSERT} 或 {INS}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
SCROLL LOCK {SCROLLLOCK}

F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}

要发送由常规键击和 SHIFT、CTRL 或 ALT 组合而成的键盘字符,请创建表示该键击组合的复合字符串参数。可通过在常规键击之前添加一个或多个以下特殊字符来完成上述操作:

SHIFT +
CTRL ^
ALT %

注意:这样使用时,不用大括号括起这些特殊字符。
要指定在按下多个其他键时,按下 SHIFT、CTRL 和 ALT 的组合,请创建复合字符串参数,用括号括起其中的组合键。例如,要发送的组合键指定:

如果在按 e 和 c 的同时按 SHIFT 键,则发送字符串参数 "+(ec)"。
如果在按 e 时只按 c(而不按 SHIFT),则发送字符串参数 "+ec"。
可使用 SendKeys 方法发送一种在一行内重复按键的键击。为此,要创建复合字符串参数,以指定要重复的键击,并在其后指定重复次数。可使用 {键击 数字} 形式的复合字符串参数来完成上述操作。例如,如果要发送 10 次 "x",则需要发送字符串参数 "{x 10}"。请确保在键击和数字之间有一个空格。

注意:只可以发送重复按一个键的键击。例如,可以发送 10 次 "x",但不可发送 10 次 "Ctrl+x"。
注意:不能向应用程序发送 PRINT SCREEN 键 {PRTSC}。

例子1:关机脚本 (模拟按键为:Ctrl + Esc、u、u )

把以下代码复制至记事本,另存为 off.vbs

set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}uu"

例子2:重启脚本 (模拟按键为:Ctrl + Esc、u、r )

把以下代码复制至记事本,另存为 reboot.vbs

set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}ur"

例子3:切换输入法 (模拟同时按下:Shift Ctrl )

set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "+(^)"

例子4:输入 cn-dos.net! 至记事本并保存为 CnDos.txt

Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 1500
WshShell.AppActivate "无标题 - 记事本"
WshShell.SendKeys "c"
WScript.Sleep 200
WshShell.SendKeys "n"
WScript.Sleep 200
WshShell.SendKeys "-"
WScript.Sleep 200
WshShell.SendKeys "d"
WScript.Sleep 200
WshShell.SendKeys "o"
WScript.Sleep 200
WshShell.SendKeys "s"
WScript.Sleep 200
WshShell.SendKeys "."
WScript.Sleep 200
WshShell.SendKeys "n"
WScript.Sleep 200
WshShell.SendKeys "e"
WScript.Sleep 200
WshShell.SendKeys "t"
WScript.Sleep 200
WshShell.SendKeys "!"
WScript.Sleep 200
WshShell.SendKeys "%FS"
WScript.Sleep 500
WshShell.SendKeys "C"
WScript.Sleep 200
WshShell.SendKeys "n"
WScript.Sleep 200
WshShell.SendKeys "D"
WScript.Sleep 200
WshShell.SendKeys "o"
WScript.Sleep 200
WshShell.SendKeys "s"
WScript.Sleep 200
WshShell.SendKeys "%S"
WScript.Sleep 500
WshShell.SendKeys "%FX"

例子5:自动定时存盘的记事本(此脚本来自网上)

'第一部分:定义变量和对象
Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=(1000*60*1) '自动存盘时间为1分钟
Set WshShell=WScript.CreateObject("WScript.Shell")
TXTFileName=InputBox("给文本起名(不能用中文和纯数字):")

'第二部分:打开并激活记事本
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate "无标题 - 记事本"

'第三部分:用输入的文件名存盘
WshShell.SendKeys "^s"
WScript.Sleep 300
WshShell.SendKeys TXTFileName
WScript.Sleep 300
WshShell.SendKeys "%s"
WScript.Sleep AutoSaveTime

'第四部分:自动定时存盘
While WshShell.AppActivate (TXTFileName)=True
WshShell.SendKeys "^s"
WScript.Sleep AutoSaveTime
Wend
WScript.Quit

例子:

set objShell = CreateObject("Wscript.Shell")
strCommandLine = "psetup755281.exe" '启动安装程序
objShell.Run(strCommandLine)
set WshShell = CreateObject("WScript.Shell")
WScript.Sleep 2000 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 300 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 300 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 5200 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 300 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 300 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 200
WshShell.SendKeys " " '模拟按下空格键去除安装网络超级搜霸一行前的√号
WScript.Sleep 100
WshShell.SendKeys "{TAB}" '模拟按下 Tab 键选择安装项目
WScript.Sleep 200
WshShell.SendKeys " " '模拟按下空格键去除安装网络超级搜霸一行前的√号
WScript.Sleep 200 '延时0.3秒
WshShell.SendKeys "f" '模拟按下 F键同意协议

㈡ 哪位大神帮我写个网卡切换的bat脚本!!

你提供的硬件ID号是错误的,留下q我会联系你

㈢ 求个自动修改切换IP的BAT文件

命令格式
netsh interface ip set <网络连接属性> <网络连接名称> static <IP地址> <子网掩码> <网关IP> <跃点计数>
netsh interface ip add dns <IP地址>

把下面代码存成.bat文件,直接运行就行了。
netsh interface ip set address "本地连接" static 192.168.18.100 255.255.255.0 192.168.18.1 1
netsh interface ip set dns "本地连接" static 202.96.128.86
netsh interface ip add dns "本地连接" 202.96.134.133

㈣ BAT脚本类型转化问题

很简单,只要加2个字符
for /f %%i in ('ajsshow -F AJSROOT1 -f ^%%I %1') do set job_num=%%i
改成
for /f %%i in ('ajsshow -F AJSROOT1 -f ^%%I %1') do set/a job_num=%%i

㈤ 我想用bat文件实现无线自动切换,并且配置IP

1、新建一个txt文本文件,并将文件名称改为:IP切换.bat

㈥ 如何写一个切换jdk版本的bat脚本

SetX有三种使用方式:
语法1:
SETX[/Ssystem[/U[domain/]user[/P[password]]]]varvalue[/M]
语法2:
SETX[/Ssystem[/U[domain/]user[/P[password]]]]var/Kregpath[/M]
语法3:
SETX[/Ssystem[/U[domain/]user[/P[password]]]]
/Ffile{var{/Ax,y|/Rx,ystring}[/M]|/X}[/Ddelimiters]
描述:
在用户或系统环境创建或修改环境变量。能基于参数、注册表项或文件输
入设置变量。
参数列表:
/Ssystem指定要连接到的远程系统。
/U[domain/]user指定应该在哪个用户上下文执行命令。
/P[password]指定给定用户上下文的密码。如果省略则
提示输入。
var指定要设置的环境变量。
value指定分配给环境变量的值。
/Kregpath指定变量是基于注册表项的信息而设置的。
路径的格式应该是hive/key/.../value。例如
HKEY_LOCAL_MACHINE/System/CurrentControlSet/
Control/TimeZoneInformation/StandardName。
/Ffile指定要使用的文本文件的文件名。
/Ax,y指定绝对文件坐标(线X,项目Y)作为在此文件
里搜索的参数。
/Rx,ystring指定有关“字符串”作为搜索参数的相对文件坐标。
/M指定应该在系统(HKEY_LOCAL_MACHINE)环境中设
置此变量。在HKEY_CURRENT_USER环境下,默认
将设置此变量。
/X用x,y坐标显示文件内容。
/Ddelimiters指定其他限定符,如","或"/"。
内置分隔符是空格、制表符、回车和换行符。所有
ASCII字符都可作为限定符。限定符的最大数量,
包括内置分隔符,是15。
/?显示此帮助消息。
注意:1)SETX在注册表中将变量写入主机环境。
2)在本地系统,用此工具创建或修改的变量将在以后的命令窗口可用,但
在当前的CMD.exe命令窗口。
3)在远程系统,用此工具创建或修改的变量在下次登录会话可用。
4)有效的注册表项数据类型是REG_DWORD,REG_EXPAND_SZ,REG_SZ
和REG_MULTI_SZ。
5)受支持的配置单元:HKEY_LOCAL_MACHINE(HKLM),
HKEY_CURRENT_USER(HKCU)。
6)限定符区分大小写。
7)REG_DWORD的值是从注册表里以十进制格式提取出来的。
示例:
SETXMACHINECOMPAQ
SETXMACHINE"COMPAQCOMPUTER"/M
SETXMYPATH"%PATH%"
SETXMYPATH~PATH~
SETX/Ssystem/Uuser/PpasswordMACHINECOMPAQ
SETX/Ssystem/Uuser/PpasswordMYPATH^%PATH^%
SETXTZONE/KHKEY_LOCAL_MACHINE/System/CurrentControlSet/
Control/TimeZoneInformation/StandardName
SETXBUILD/K"HKEY_LOCAL_MACHINE/Software/Microsoft/Windows
NT/CurrentVersion/CurrentBuildNumber"/M
SETX/Ssystem/Uuser/PpasswordTZONE/KHKEY_LOCAL_MACHINE/
System/CurrentControlSet/Control/TimeZoneInformation/
StandardName
SETX/Ssystem/Uuser/PpasswordBUILD/K
"HKEY_LOCAL_MACHINE/Software/Microsoft/WindowsNT/
CurrentVersion/CurrentBuildNumber"/M
SETX/Fipconfig.out/X
SETXIPADDR/Fipconfig.out/A5,11
SETXOCTET1/Fipconfig.out/A5,3/D"#$*."
SETXIPGATEWAY/Fipconfig.out/R0,7Gateway
SETX/Ssystem/Uuser/Ppassword/Fc:/ipconfig.out/X

虽然是很长的一段,不过关键信息就是可以用SETX来设置系统变量。通过以下的这条命令,我们可以对java_HOME进行设置(当然前提是系统中有这个变量)

@SETXJAVA_HOME"V:/ProgramFiles/Java/jdk1.8.0_77"/M

熟悉java配置的就会知道,通过配置JAVA_HOME我们才能使用JDK来进行开发,也就是说,只要能通过命令来修改JAVA_HOME,那就可以自由的切换我们想要的版本了。然后再在脚本中进行一些简单的判断就可以实现基本功能了。

以下是一个基本的脚本,实现在1.6和1.8之间的切换

@ECHO========请以管理员权限运行========
@titleJAVA_HOMESWITCH
@color07
@ECHO请选择
@ECHO1.JDK1.8
@ECHO2.JDK1.6
@CHOICE/C12
@IFERRORLEVEL2gotoswitchTo1.6
@IFERRORLEVEL1gotoswitchTo1.8
@:switchTo1.8
@SETXJAVA_HOME"V:/ProgramFiles/Java/jdk1.8.0_77"/M
@IF%ERRORLEVEL%NEQ0gotoerror
@echo#切换到1.8完成#
@pause
@gotolast
@:switchTo1.6
@SETXJAVA_HOME"C:/ProgramFiles/Java/jdk1.6.0_43"/M
@IF%ERRORLEVEL%NEQ0gotoerror
@echo#切换到1.6完成#
@pause
@gotolast
@:error
@echo没有切换成功......
@gotolast
@:last
@pause

如果你只有两个版本的jdk需要切换,那么将上面的路径修改下,改为自己的JDK安装路径就行了,再改下提示信息就ok了。

运行效果

因为修改的是系统变量,所以必须以管理员身份运行。运行完后可以使用java -version和javac -version验证是否起到作用,或者直接查看系统变量。这时可能你会发现java和javac验证出来的版本不一致,只有javac版本变了,解决方案是把path里面的%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin提到path的开头,保存后就可以实现版本的同步了

㈦ bat脚本中对路径进行替换。

给您举个栗子(呃,是例子,哈哈):

set var=C:\Test\File.txt

set var=%var:C:\Test\=D:\Ok\%

echo %var%

pause

㈧ BAT批处理更改~ 快速切换IPv4/IPv6 host的脚本

想节约步骤,编写bat文件,每次不用点击运行、ip输入,再连主机,想用批处理文件一步到位。
这个好办啊如果你每次IP都是固定的只需要以下语句
@echo

㈨ 网络IP 自动使用BAT脚本切换的问题。

做2个批处理吧! 一个用来修改0段位的IP 一个用来修改5段位的IP

给你个批处理文件 你稍微修改下就能用!

@echooff
titleAlpha-IP地址修改工具
MODEcon:COLS=80lines=20

remIP地址列表

setlname=本地连接2
rem本地连接IP地址一公司IP地址
setlAdd1=192.168.3.126
setlmask1=255.255.252.0
setlGat1=192.168.3.254
setldns11=202.96.199.133
setldns12=202.106.196.115
rem本地连接IP地址二家庭IP地址
setlAdd2=192.168.0.115
setlmask2=255.255.255.0
setlGat2=192.168.0.1
setldns21=202.96.199.133
setldns22=202.106.196.115

setwname=无线网络连接
rem无线连接IP地址一公司IP地址
setwAdd1=%lAdd1%
setwmask1=%lmask1%
setwGat1=%lGat1%
setwdns11=%ldns11%
setwdns12=%ldns12%
rem无线连接IP地址二家庭IP地址
setwAdd2=%lAdd2%
setwmask2=%lmask2%
setwGat2=%lGat2%
setwdns21=%ldns21%
setwdns22=%ldns21%


:home
cls
@echo.
@echoAlpha-IP地址修改工具(KYT--PanFu)
@echo.
@echo1:设置%lname%
@echo2:设置%wname%
@echo.
@echo警告:WIN7系统必须单击右键[以管理员身份运行(A)]!
@echo.
@echo.
setshut=""
set/pshut="请输入【<1>或<2>或<q>退出】并按回车键:"
IFNOT"%shut%"==""(
if%shut%NEQ""SETshut=%shut:~0,1%
)else(
setshut="")
if/i%shut%==1gotolocally
if/i%shut%==2gotowireless
if/i%shut%==qexit
gotohome

:locally
cls
@echo.
@echo修改%lname%IP地址(KYT--PanFu)
@echo.
@echo1:设置%lname%自动获取IP地址
@echo2:设置%lname%IP地址为公司IP%lAdd1%
@echo3:设置%lname%IP地址为专用IP%lAdd2%
@echo.
@echo.
setshut=""
set/pshut="请输入【<1>或<2>或<3>或<q>退出】并按回车键或者按<回车键>返回主菜单

:"
IFNOT"%shut%"==""(
if%shut%NEQ""SETshut=%shut:~0,1%
)else(
setshut="")
if/i%shut%==1gotolocallyone
if/i%shut%==2gotolocallytwo
if/i%shut%==3gotolocallythree
if/i%shut%==qexit
gotohome

:wireless
cls
@echo.
@echo修改%wname%IP地址(KYT--PanFu)
@echo.
@echo1:设置%wname%自动获取IP地址
@echo2:设置%wname%IP地址为公司IP%wAdd1%
@echo3:设置%wname%IP地址为专用IP%wAdd2%
@echo.
@echo.
setshut=""
set/pshut="请输入【<1>或<2>或<3>或<q>退出】并按回车键或者按<回车键>返回主菜单

:"
IFNOT"%shut%"==""(
if%shut%NEQ""SETshut=%shut:~0,1%
)else(
setshut="")
if/i%shut%==1gotowirelessone
if/i%shut%==2gotowirelesstwo
if/i%shut%==3gotowirelessthree
if/i%shut%==qexit
gotohome

rem设置本地网络连接开始
:locallyone
@echo.
@echo正在设置%lname%IP地址请稍后。。。
call:autolocall%lname%>nul
@echo设置%lname%自动获取IP地址成功!!
@echo.
@echo.
gotothree

:locallytwo
@echo.
@echo正在设置%lname%IP地址请稍后。。。
call:autowireless%wname%>nul
cmd/="%lname%"static%ladd1%%lmask1%%lGat1%>nul
cmd/cnetshinterfaceipadddnsname="%lname%"%ldns11%index=1>nul
cmd/cnetshinterfaceipadddnsname="%lname%"%ldns12%index=2>nul
@echo设置%lname%IP地址成功!!!
@echo.
@echo当前IP地址:%ladd1%
@echo当前子网掩码:%lmask1%
@echo当前默认网关:%lGat1%
@echo当前DNS1地址:%ldns11%
@echo当前DNS2地址:%ldns12%
@echo.
@echo.
gotothree

:locallythree
@echo.
@echo正在设置%lname%IP地址请稍后。。。
call:autowireless%wname%>nul
cmd/="%lname%"static%ladd2%%lmask2%%lGat2%>nul
cmd/cnetshinterfaceipadddnsname="%lname%"addr=%ldns21%index=1>nul
cmd/cnetshinterfaceipadddnsname="%lname%"addr=%ldns22%index=2>nul
@echo设置%lname%IP地址成功!!!
@echo.
@echo当前IP地址:%ladd2%
@echo当前子网掩码:%lmask2%
@echo当前默认网关:%lGat2%
@echo当前DNS1地址:%ldns21%
@echo当前DNS2地址:%ldns22%
@echo.
@echo.
gotothree
::设置本地网络连接结束

::设置无线网络连接开始
:wirelessone
@echo.
@echo正在设置%wname%IP地址请稍后。。。
call:autowireless%wname%>nul
@echo设置%wname%自动获取IP地址成功!!
@echo.
@echo.
gotothree

:wirelesstwo
@echo.
@echo正在设置%wname%IP地址请稍后。。。
call:autolocall%lname%>nul
cmd/="%wname%"static%wadd1%%wmask1%%wGat1%>nul
cmd/cnetshinterfaceipadddnsname="%wname%"%wdns11%index=1>nul
cmd/cnetshinterfaceipadddnsname="%wname%"%wdns12%index=2>nul
@echo设置%wname%IP地址成功!!!
@echo.
@echo当前IP地址:%wadd1%
@echo当前子网掩码:%wmask1%
@echo当前默认网关:%wGat1%
@echo当前DNS1地址:%wdns11%
@echo当前DNS2地址:%wdns12%
@echo.
@echo.
gotothree

:wirelessthree
@echo.
@echo正在设置%wname%IP地址请稍后。。。
call:autolocall%lname%>nul
cmd/="%wname%"static%wadd2%%wmask2%%wGat2%>nul
cmd/cnetshinterfaceipadddnsname="%wname%"%wdns121%index=1>nul
cmd/cnetshinterfaceipadddnsname="%wname%"%wdns122%index=2>nul
@echo设置%wname%IP地址成功!!!
@echo.
@echo当前IP地址:%wadd2%
@echo当前子网掩码:%wmask2%
@echo当前默认网关:%wGat2%
@echo当前DNS1地址:%wdns21%
@echo当前DNS2地址:%wdns22%
@echo.
@echo.
gotothree
::设置无线网络连接结束

:three
::pause>nul
setshut=""
set/pshut="请输入【<a>返回主菜单】或者按<其他键>退出:"
IFNOT"%shut%"==""(
if%shut%NEQ""SETshut=%shut:~0,1%
)else(
setshut="")
if/i%shut%==agotohome
exit

:autolocall
cmd/="%lname%"static0.0.0.00.0.0.00.0.0.0>nul
cmd/="%lname%"source=dhcp>nul
cmd/cnetshinterfaceipsetdnsname="%lname%"source=dhcp>nul
::@echo设置%lname%自动获取IP地址成功!
goto:eof

:autowireless
cmd/="%wname%"static0.0.0.00.0.0.00.0.0.0>nul
cmd/="%wname%"source=dhcp>nul
cmd/cnetshinterfaceipsetdnsname="%wname%"source=dhcp>nul
::@echo设置%wname%自动获取IP地址成功!
goto:eof

上面的本地连接2 是你的本地连接的名字! IP地址修改下就行了!

把上面的代码 复制到新建文本里,然后改下后缀名! .bat就OK了

热点内容
安卓如何设置桌面返回键 发布:2025-02-06 13:58:15 浏览:48
bi可视化php 发布:2025-02-06 13:50:15 浏览:931
shell写脚本文件 发布:2025-02-06 13:47:32 浏览:231
健身器材脚本 发布:2025-02-06 13:46:36 浏览:856
怎么从手机里卸载存储卡 发布:2025-02-06 13:35:04 浏览:644
诛仙青云志2ftp 发布:2025-02-06 13:34:48 浏览:34
mill91编程 发布:2025-02-06 13:10:27 浏览:294
华为平板怎么储存服务器文件 发布:2025-02-06 12:49:21 浏览:482
php查询结果数组 发布:2025-02-06 12:31:05 浏览:717
怎样把照片压缩打包 发布:2025-02-06 12:15:19 浏览:498