Board logo

标题: [文本处理] [已解决]批处理for命令如何将net user的output的User成1列 [打印本页]

作者: pdanniel66    时间: 2011-3-13 20:40     标题: [已解决]批处理for命令如何将net user的output的User成1列

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "skip=4 delims= tokens=1,3" %%a  in ('net user^|find /v "命令执行成功"') do (echo %%a >> user-list.txt)
复制代码
以上的output如下 :

456                      Administrator            ASPNET                    
danch168                 daniel                   Guest                     
HelpAssistant            IUSR_ICS-DANCH-NB        IWAM_ICS-DANCH-NB         
LondonUser               MUSR_MQADMIN             nick                     
patrick                  perfume                  poiuy123                  
qwert123                 qwert999                 robert                    
SUPPORT_388945a0

期望的output如下 :

456
Administrator
ASPNET
daniel168
daniel
Guest
.
.
.

[ 本帖最后由 pdanniel66 于 2011-3-14 06:57 编辑 ]
作者: wc726842270    时间: 2011-3-13 22:32

echo的问题,一个笨方法
  1. @echo off
  2. for /f "tokens=1-3 delims= " %%i in (1.txt) do echo=%%i&echo=%%j&echo=%%k
  3. pause
复制代码

作者: CrLf    时间: 2011-3-13 22:57

其实这个技巧我很爱用的:
  1. @echo off
  2. for /f "delims=" %%a in (1.txt) do for %%b in (%%a) do echo %%b
  3. pause
复制代码

[ 本帖最后由 zm900612 于 2011-3-13 22:58 编辑 ]
作者: pdanniel66    时间: 2011-3-14 06:56

3 F 正解,可否说明 do for %%b in (%%a) do echo %%b,谢谢 !
作者: CrLf    时间: 2011-3-14 13:38

楼主运行这个就明白了:
  1. @echo off
  2. for /f "useback delims=" %%a in ("%~0") do echo %%a
  3. pause
  4. for %%a in (第1列 第2列 第3列) do echo %%a
  5. pause
复制代码





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