[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]求助批处理如何在for中正确使用xargs,谢谢

本帖最后由 hfxiang 于 2022-8-26 14:16 编辑

用到的第3方式具xargs64.exe,下载地址:http://bcn.bathome.net/tool/xargs64.exe

直接执行(是以下for指令想得到的结果分2行输出):
D:\test>echo;select disk 0;list partition|xargs64 -d";" -L1
select disk 0
list partition


用for执行(出现非想要的结果,合在1行输出):
D:\test>for /f "usebackq tokens=*" %a in (`echo;select disk 0;list partition^|xargs64 -d";" -L1`) do @echo;%a
select disk 0 list partition

求助用各位大神,如何用for执行指令后,得出分2行显示的结果(即直接执行的结果一致)

批处理中的字符串被插入换行符之后,echo 和 for...() 是如何摆弄他们的...
  1. @echo off &setlocal enabledelayedexpansion
  2. set "strline=我们 本来 都在 同一行"
  3. set strLines=!strLine: =^
  4. !
  5. ::以上两行不能被省略
  6. echo,【!strLines!】
  7. ::下式示范》被插入换行符的字符串在循环表达式中相当于从文件中读取有换行符的文本行(其中不能再有, ;等默认分隔符)
  8. for %%s in (!strLines!) do echo,%%s
  9. ::下式利用 for...() 条件表达式的默认分隔符(, ;)可达到相同效果
  10. for %%s in (我们,本来 都在;同一行) do echo,%%s
  11. endlocal&pause&exit/b
复制代码
1

评分人数

TOP

回复 4# flashercs

谢谢
测试了4、5、6楼的方式,发现4楼的是可行的,但不是针对xargs的。

TOP

  1. for /f "usebackq tokens=*" %a in (`echo;select disk 0^;list partition^|xargs64 -d";" -L1`) do @echo;%a
复制代码
微信:flashercs
QQ:49908356

TOP

  1. for /f "usebackq tokens=*" %a in (`echo;select disk 0^;list partition^|xargs64 -d";" -L1`) do @echo;%a
复制代码
微信:flashercs
QQ:49908356

TOP

  1. for /f "delims=" %a in ('powershell "'select disk 0';'list partition';'select part 1'"') do @echo %a
复制代码
微信:flashercs
QQ:49908356

TOP

回复 2# Batcher


   
谢谢。
由于Windows的echo无Linux中echo -e "\n" 输出回车的功能,想利用xargs分割echo参数用于管道,而不想用过渡文件的方式操作,同时防止参数过长而引发的报错。故探索xargs在Windows中的应用。当然可以用gun的echo移植到Windows的版本来解决问题。

TOP

有什么特殊需求必须使用xargs64吗?
  1. @echo off
  2. for /f "delims=" %%i in ('echo select disk 0^& echo list partition') do (
  3.     echo,%%i
  4. )
  5. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表