[cmd]怎么处理重定向的文本

Young man 2020-05-08 03:28:47
本来想用net user 获取用户重定向到文本, 然后用vc读取文件,但是发现文件里有很多不需要的内容,怎么处理掉.
重定向
怎么能处理成这样
...全文
153 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Young man 2020-05-18
引用 6 楼 qybao 的回复:
[quote=引用 5 楼 Young man 的回复:] 我加的重定向位置是不是错了.没有创建文件.
测试了一下,不是你重定向出问题,而是变量延时展开的问题 改成以下(加上变量延时展开)
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2,3 delims= " %%i in ('net user') do (
    set v1=%%i
    set v2=%%j
    if not "!v1!"=="" if not "!v2!"=="" if not "!v1:~0,1!"=="-" if not "!v1:~0,2!"=="\\" (
        echo %%i
        echo %%j
        if not "%%k"=="" echo %%k
    )
)
[/quote] 太感谢了,完美解决
回复
qybao 2020-05-18
引用 5 楼 Young man 的回复:
我加的重定向位置是不是错了.没有创建文件.

测试了一下,不是你重定向出问题,而是变量延时展开的问题
改成以下(加上变量延时展开)

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2,3 delims= " %%i in ('net user') do (
set v1=%%i
set v2=%%j
if not "!v1!"=="" if not "!v2!"=="" if not "!v1:~0,1!"=="-" if not "!v1:~0,2!"=="\\" (
echo %%i
echo %%j
if not "%%k"=="" echo %%k
)
)
回复
Young man 2020-05-18
引用 4 楼 qybao 的回复:
if的最后一个判断错了 "%v1:~0,2"=="\\" 改成 "%v1:~0,2%"=="\\" 漏了个百分号
我加的重定向位置是不是错了.没有创建文件.
回复
qybao 2020-05-18
if的最后一个判断错了
"%v1:~0,2"=="\\" 改成 "%v1:~0,2%"=="\\" 漏了个百分号
回复
Young man 2020-05-18
引用 2 楼 qybao 的回复:
写个bat,过滤net user的信息,然后重定向到文件
rem 用for来分割每行数据,然后判断合法数据输出
for /f "usebackq tokens=1,2,3 delims= " %%i in ('net user') do (
    set v1=%%i
    set v2=%%j
    if not "%v1%"=="" if not "%v2%"=="" if not "%v1:~0,1%"=="-" if not "%v1:~0,2"=="\\" (
        echo "%%i"
        echo "%%j"
        echo "%%k"
    )
)
大神,我按照你的方法试了下,没有重定向出来啊. 是我写到位置不对么
回复
qybao 2020-05-15
写个bat,过滤net user的信息,然后重定向到文件

rem 用for来分割每行数据,然后判断合法数据输出
for /f "usebackq tokens=1,2,3 delims= " %%i in ('net user') do (
set v1=%%i
set v2=%%j
if not "%v1%"=="" if not "%v2%"=="" if not "%v1:~0,1%"=="-" if not "%v1:~0,2"=="\\" (
echo "%%i"
echo "%%j"
echo "%%k"
)
)

回复
ForestDB 2020-05-14
cmd脚本可编程性并不太好,建议powershell,或者配合python之类的脚本。要不就是在VC中直接做文本处理。
回复
发帖
其它技术问题
创建于2007-09-28

3842

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2020-05-08 03:28
社区公告
暂无公告