无忧启动论坛

标题: cmd 如何处理这样文本 [打印本页]

作者: 2011xiaobing    时间: 2014-2-26 16:46
标题: cmd 如何处理这样文本
本帖最后由 2011xiaobing 于 2014-2-26 21:09 编辑

文本:
        ADVAPI32.dll => E:\Windows\system32\ADVAPI32.dll
        DUI70.dll => E:\Windows\SYSTEM32\DUI70.dll
        DUser.dll => E:\Windows\SYSTEM32\DUser.dll
        GDI32.dll => E:\Windows\system32\GDI32.dll
        KERNEL32.dll => E:\Windows\system32\KERNEL32.DLL
        OLEACC.dll => E:\Windows\SYSTEM32\OLEACC.dll
        OLEAUT32.dll => E:\Windows\system32\OLEAUT32.dll
        OskSupport.dll => E:\Windows\SYSTEM32\OskSupport.dll
        SHLWAPI.dll => E:\Windows\system32\SHLWAPI.dll
目标:
        把每行的字符     如 \Windows\system32\KERNEL32.DLL  都写入 list.txt

原始文本:(有空格)



自己功力太差,网络上又搜索无果,特来求助!谢谢



作者: dos时代菜鸟    时间: 2014-2-27 07:58
本帖最后由 dos时代菜鸟 于 2014-2-27 08:03 编辑

cmd 下一句话搞定
  1. for /f "delims=: tokens=2*" %c in (file.txt) do @echo %c>>list.txt
复制代码

捕获.JPG (35.17 KB, 下载次数: 56)

捕获.JPG

作者: 2011xiaobing    时间: 2014-2-27 09:54
dos时代菜鸟 发表于 2014-2-27 07:58
cmd 下一句话搞定

感谢大师!

再请教:如果只要文本中所有的第一列;如ADVAPI32.dll…… 又如何操作?
谢谢!
作者: dos时代菜鸟    时间: 2014-2-27 11:05
2011xiaobing 发表于 2014-2-27 09:54
感谢大师!

再请教:如果只要文本中所有的第一列;如ADVAPI32.dll…… 又如何操作?
  1. for /f %c in (list.txt) do @echo %~nxc
复制代码

捕获.JPG (18.43 KB, 下载次数: 60)

捕获.JPG

作者: 2011xiaobing    时间: 2014-2-27 14:46
非常非常感谢大师巧妙解答!!!CMD 真是奥妙无穷!
原委:本人需要的,显然不是后面的。(后面的根本没用,只有前面的有用。)
原文本:
        SHLWAPI.dll => X:\Windows\system32\SHLWAPI.dll
        SLC.dll => X:\Windows\SYSTEM32\SLC.dll
        SspiCli.dll => X:\Windows\SYSTEM32\SspiCli.dll
        TWINAPI.dll => X:\Windows\SYSTEM32\TWINAPI.dll
        USER32.dll => X:\Windows\system32\USER32.dll
        USERENV.dll => X:\Windows\SYSTEM32\USERENV.dll
        UxTheme.dll => X:\Windows\SYSTEM32\UxTheme.dll
        api-ms-win-core-atoms-l1-1-0.dll => X:\Windows\system32\KERNEL32.DLL
        api-ms-win-core-com-l1-1-1.dll => X:\Windows\SYSTEM32\combase.dll
        api-ms-win-core-com-private-l1-1-0.dll => X:\Windows\SYSTEM32\combase.dll
        api-ms-win-core-datetime-l1-1-1.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-debug-l1-1-1.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-delayload-l1-1-1.dll => X:\Windows\system32\KERNEL32.DLL
        api-ms-win-core-errorhandling-l1-1-1.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-file-l1-2-1.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-handle-l1-1-0.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-heap-l1-2-0.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-heap-obsolete-l1-1-0.dll => X:\Windows\system32\KERNEL32.DLL
        api-ms-win-core-interlocked-l1-2-0.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-io-l1-1-1.dll => X:\Windows\system32\KERNEL32.DLL
        api-ms-win-core-job-l2-1-0.dll => X:\Windows\system32\KERNEL32.DLL
        api-ms-win-core-kernel32-legacy-l1-1-1.dll => X:\Windows\system32\KERNEL32.DLL
        api-ms-win-core-libraryloader-l1-2-0.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-localization-l1-2-1.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-localization-obsolete-l1-2-0.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-memory-l1-1-2.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-path-l1-1-0.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-core-processenvironment-l1-2-0.dll => X:\Windows\system32\KERNELBASE.dlll
        api-ms-win-power-base-l1-1-0.dll => X:\Windows\SYSTEM32\powrprof.dll
        api-ms-win-security-base-l1-2-0.dll => X:\Windows\system32\KERNELBASE.dll
        api-ms-win-security-lsalookup-l1-1-1.dll => X:\Windows\SYSTEM32\sechost.dll
        api-ms-win-service-management-l2-1-0.dll => X:\Windows\SYSTEM32\sechost.dll
        d3d11.dll => X:\Windows\SYSTEM32\d3d11.dll
        dcomp.dll => X:\Windows\SYSTEM32\dcomp.dll
        dwmapi.dll => X:\Windows\SYSTEM32\dwmapi.dll
----------------
我又是用delims,tokens  分隔符以 “ =>” 想取出文本的第一列,搞了好几天,焦头烂额,总是搞不定。
大师连分隔符也不用!哈哈。敬请大师解释一二,愿闻其详!!!

作者: dos时代菜鸟    时间: 2014-2-27 15:12
本帖最后由 dos时代菜鸟 于 2014-2-27 15:15 编辑

1、分隔符只能是一个字符
2、 > 作为 cmd下的 常量字符,不能直接用于 命令表示中。

试试:
for /f "delims== tokens=1*" %c in (file.txt) do @echo %c>>list.txt

作者: 2011xiaobing    时间: 2014-2-27 21:21
谢谢大师的详解!!!
感激万分。谢谢。
作者: lgx    时间: 2014-2-28 16:04
学习了
作者: feifanll    时间: 2014-3-5 23:23
不错不错,顶起...




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3