Environment

http://libertyboy.free.fr/computing/reference/envariables/index.php

envstands for
%username%当前用户名
%systemdrive%C:\\
%systemroot%C:\\windows\\,或者等价于%windir%
%programfiles%C:\\Program Files
%userprofile%C:\\Documents and Settings\\lei
%appdata%C:\\Documents and Settings\\lei\\Application Data
%appdata%C:\\users\\lei\\appdata\\roaming,该值最好不要修改; %appdata%\Microsoft\Internet Explorer\Quick Launch
%userprofile%C:\\users\\lei,该值是固定的,等价于%homedrive%%homepath%
%temp%C:\\Users\\lei\\appdata\\local\\temp,该值最好不要修改
%comspec%C:\Windows\System32\cmd.exe
%errorlevel%表示上一个命令成功==0
%date%日期
%0%当前批处理文件全路径,删除自身: del %0 >nul 2>nul &exit
%~dp0%批处理文件所在的目录
%PROCESSOR_ARCHITECTURE%注意此值不能用来判断OS位数,因为cmd是32位的64位系统出来可能是x86

Common Cmd

rem https://learn.microsoft.com/en-us/sysinternals/downloads/psexec
psexec

rem process
start /max kmplayer.exe && exit
taskkill /f /im Qvod* 1>nul 2>nul

rundll32 DLLname,Functionname [Arguments]
rem 安全删除硬件窗口
rundll32 shell32.dll,Control_RunDLL hotplug.dll
rem 锁屏
rundll32 user32.dll,LockWorkStation

rem 管理工具
control admintools
rem 用户账户,可配置自动登录!
control userpasswords2
rem 文件夹选项
control folders
rem 鼠标选项(main.cpl)
control mouse
rem 键盘选项
control keyboard
rem 网络连接(ncpa.cpl)
control netconnections
rem 打印机
control printers

rem io
rem /e :every,复制子目录包括空目录
rem /y :如果有同名文件则取消提示以覆盖
rem /c :continue,即使出错也继续
rem /i :假定目标是一个目录,而不是文件(默认情况可能会提示)
rem /k :复制文件属性
rem /o :复制文件所有权和ACL信息
rem destination必须指明boot不然会将source的boot中的所有内容都复制到D:\tmp\
rem D:\tmp\boot不存在时会被自动创建!
xcopy /e /i /y /c boot D:\tmp\boot

rem misc
rem lusrmgr.msc, secpol.msc, perfmon.msc, diskmgmt.msc, devmgmt.msc
rem appwiz.cpl, powercfg.cpl, timedate.cpl(时间日期), wscui.cpl(windows安全)
rem sysdm.cpl,3(系统属性-高级), desk.cpl(桌面-属性), inetcpl.cpl(Internet属性)
rem mmsys.cpl(声音), hdwwiz.cpl(添加硬件向导), joy.cpl(游戏手柄)
rem 压缩
makecab /d CompressionType=LZX /d CompressionMemory=21 filename

rem vbExclamation叹号 vbInformation提示 vbQuestion问号 vbCritical叉号
rem vbYesNo确定取消按钮 vbSystemModal前段显示
mshta vbscript:msgbox("Hello,world!",vbYesNo,"batch script")(window.close)

Network

rem set DHCP, LocalConnection
netsh interface ip set address "本地连接" dhcp
netsh interface ip set dns "本地连接" dhcp

rem set static
netsh interface ip set address "本地连接" static 192.168.1.123 255.255.255.0 192.168.1.1
netsh interface ip set dns "本地连接" static 8.8.8.8
netsh wlan show all  显示当前无线连接以及搜索到的所有其他无线网络

rem 建立无线网络,注意无线物理网卡的连接不要禁用,虽然其显示红叉
rem 如果"支持的承载网络"是'否'则不支持网络共享
netsh wlan show drivers

rem wifi share
netsh wlan set hostednetwork mode=allow ssid="hello world" key=hello //length(key)>=6
rem 共享当前网络连接到Microsoft Virtual Wifi miniport
control netconnections
rem stop show
netsh wlan start hostednetwork

rem net resource share
rem 首先创建一个隐藏用户
net user lei$ 123 /add
net localgroup administrators leizi$ /add /comment:"some comment"
rem 从users组中删除用户
net localgroup users leizi /del
rem 开启/启动telnet服务stop
net start telnet
rem 映射网络驱动器
net use j: \\192.168.20.2\ipc$
rem 断开所有IPC$连接(默认不支持Admin权限的连接)
net use * /del
rem 查看共享
net share

filetype

  • 会修改例如如下注册表位置(全局): hkcr\lnkfile
  • windows默认定义了6中文件类型: text(txtfile) image audio video compressed system
rem 将快捷方式关联到正确的'关联类型',不要应用到未知的自定义类型,这不起任何作用!
rem 会给HKCR/.lnk下的默认键添加键值"lnkfile"
assoc .lnk=lnkfile

rem 添加新的文件扩展名对应的打开方式;不会显示相应的文件类型图标.
ftype .conf=d:\usr\Vim\gvim.exe --remote-silent %%1>nul

rem 添加无扩展名文件的默认打开方式
ftype .=d:\usr\Vim\gvim.exe --remote-silent %&1>nul