Board logo

标题: [文本处理] 【已结】批处理如何捕获命令执行后的输出结果并赋值给变量? [打印本页]

作者: cxz1012    时间: 2009-3-2 13:45     标题: 【已结】批处理如何捕获命令执行后的输出结果并赋值给变量?

如以下命令:

ipconfig /all|find "Default Gateway"|sort /r

网上有很多获取本机IP和mac之类的批处理脚本,但是好像都只对本机只有一块网卡的情况下适用,如果有N多块网卡的呢?

所以只要能把以上命令的输出结果能赋值给一个变量,再进行处理,就能解决很多难题。希望能给个处理方法,谢谢!

类似以下语句:
set "Cmd_str=`ipconfig /all^|find "Default Gateway"^|sort /r`"
echo %Cmd_str%
这样子显然行不通~~~~

[ 本帖最后由 cxz1012 于 2009-3-2 17:10 编辑 ]
作者: Batcher    时间: 2009-3-2 13:50

基本上都是用for,参考:Ritchie Lawrence 批处理函数库中英文版
http://bbs.bathome.net/thread-3056-1-1.html
作者: cxz1012    时间: 2009-3-2 16:24

呵呵~~~不错,给了我启示,谢谢Batcher
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1,2 delims=:" %%a in ('ipconfig /all^|find "Default Gateway"^|sort /r') do (
  4.     if not defined line_str set line_str=%%b
  5. )
  6. echo 本机的网关地址为:!line_str!
复制代码

作者: Batcher    时间: 2009-3-2 16:41     标题: 回复 3楼 的帖子

如果有人帮你解决了问题,建议进行以下操作:

1、修改帖子标题,在标题最前面注明:【已结】

2、给竭尽全力帮你的人、正确回答问题的人加分(你自己的积分不会减少)以示感谢,虽然大家来论坛是为了学习而不是为了积分,但加分聊表谢意总是或多或少能够让花费了时间和精力无私帮助你的人略感欣慰。

3、如果你是在别人的提示下自己写出了代码,请把自己的方法贴出来跟大家分享一下,也许他人可以帮你指出代码中的不足之处、告诉你如何提高执行效率等,有交流才能更快地进步。





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2