set /p str=ipconfig/all | findstr "本地连接"
的意思是set一个变量str的值,有了/P后,=后面的字符串都被当作屏幕提示,也就是说,运行时屏幕提示ipconfig/all | findstr "本地连接",然后让你输入一个值输入变量,而你没有输入,所以就没有变量str。可以使用for截取ipconfig的命令结果输入变量:for /f “delims=" %%i in ('ipconfig/all | findstr "本地连接"') do set str=%%i
真看不懂你要干什么????
难道你要实现下面的效果?
ipconfig/all | findstr "本地连接">a.txt
set /p str=
但这样有是什么意义吗?
你还是把要获取ip地址还是mac地址等等说清楚吧,别人才好帮你。
@ECHO OFF
SETLOCAL
FOR /F "DELIMS=" %%A IN ('ipconfig /all^|findstr "本地连接"') DO SET STR=%%A
ECHO %STR%
ENDLOCAL