不才最近开始学习批处理,参考各位前辈的批处理时发现一些不懂的地方,特来求教
这是一段网上找到的显示IP地址的代码
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "IP Address"') do echo IP地址=%%i
问题1:其中的^|是什么意思啊,看教程上说^是把取消特殊字符的功能,把这个特殊字符当做一个普通字符来对待,而|是把前边命令的结果当做后边命令的参数,照理说这里只需要|就够了,但是实际测试不行。
问题2:把ipconfig命令的结果显式出来的话,关键的一行是 IPv4 地址 . . . . . . . . . . . . : 192.168.128.1,
不管是把ipconfig命令的结果直接在CMD窗口显示出来还是用>导出到txt,都没有发现其中包含 IP Address ,那么,为什么这条批处理能够正确显示IP地址呢?
这是一段在win7下取得桌面路径的代码,由于注册表的键值类型是reg_expand_sz,导出为文本文件后是十六进制代码
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"^|findstr /i
"Desktop"') do (
set "str=%%i"
set "str=!str:*reg_expand_sz=!"
for /f "tokens=*" %%a in ("!str!") do set DesktopPath=%%~a
)