Board logo

标题: [文本处理] [已解决]批处理如何将文本各行赋与变量? [打印本页]

作者: liujb114    时间: 2011-7-21 09:56     标题: [已解决]批处理如何将文本各行赋与变量?

假如我有一个文本,未知行,如:
10.16.120.17
10.16.120.52
10.16.120.67
10.16.120.74
10.16.120.97
10.16.120.108
10.16.120.112
10.16.120.113
10.16.120.133
10.16.120.134
10.16.120.142
10.16.120.146
10.16.120.147
10.16.120.154
10.16.120.201
10.16.120.216
10.16.120.251

我想知道的是如何将这些IP单独赋与变量?
作者: CrLf    时间: 2011-7-21 10:04

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%a in (ip.txt) do set /a "n+=1"&set ip!n!=%%a
  3. set ip
  4. pause
复制代码

作者: liujb114    时间: 2011-7-21 10:34

测试通过!多谢crlfb ,如果能解释一下SET IP的作用就更感谢了!~
作者: Hello123World    时间: 2011-7-23 14:57

  1. @echo off&SetLocal EnableDelayedExpansion
  2. Set n=0
  3. for /f "delims=" %%i in (1.txt) do (Set n+=1
  4. Set a!n!=%%i
  5. )
  6. pause
复制代码

作者: Hello123World    时间: 2011-7-23 15:00

3# liujb114
单独输入set——显示所有定义的变量及其对应值。
输入 set ip ——显示所有变量名中含有“ip”的变量及其对应值。
作者: Batcher    时间: 2011-7-23 15:00

3# liujb114


系统自带的帮助里面有讲解:
SET command invoked with just a variable name, no equal sign or value
will display the value of all variables whose prefix matches the name
given to the SET command.  For example:

    SET P

would display all variables that begin with the letter 'P'





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