本帖最后由 假大空 于 2015-10-26 23:05 编辑 @dos时代菜鸟: 想问下如果多行,只取第一行该如何弄?比如我有3张网卡。 for /f "tokens=15 delims=: " %%i in ('ipconfig ^| find /i "IPv4"') do @echo %%i 用冒号空格作间隔符,取得3张网卡的IP地址。但是我只想取第一张网卡的IP该如何写批处理呢?如果将变量赋值给新变量,只能得到最后一张网卡的IP,比如 for /f "tokens=15 delims=: " %%i in ('ipconfig ^| find /i "IPv4"') do set ip=%%i @echo 获取的网卡IP为:%ip% 请问该怎样取得第一张或者第二张网卡的IP值呢? 补:原来要设变量延迟,已解决。 |
dos时代菜鸟 发表于 2015-8-3 08:23 谢谢 我已经搞定,还要考虑间隔和空格双重问题 |
本帖最后由 dos时代菜鸟 于 2015-8-3 08:32 编辑 fuldho 发表于 2015-8-2 12:38 原来 间隔符 不是空格 而使 tab ![]() 其实 在 cmd 下 直接输入
就可以 了,for 默认将 空格 、tab 当作分隔符。 ![]() |
原来是cmd 下的操作啊。那简单多了: for /f "tokens=1,2 delims= " %%i in (1.txt) do(echo %%j) |
本帖最后由 wang_966 于 2015-7-31 21:52 编辑 方法1: 写一个 0.BAT 内容如以下二行 for /f "tokens=1,2 delims= " %%i in (1.txt) do set j=%%j echo %j% (如果是每一行取得第二栏)方法2: 如何利用 仿unix/linux命令 sed 一次替换文字中的 "某些相似性的字串" ==> http://bbs.wuyou.net/forum.php?mod=viewthread&tid=362520 sed -e "s/[!-~][!-~]* *\([!-~][!-~]*\) *.*/\1/" < 1.txt > output.txt |
用 nset 读取 该行中第2个单词。 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.