windows – 批处理 – 将命令输出存储到变量(多行)
发布时间:2020-07-16 11:28:07 所属栏目:Windows 来源:互联网
导读:我知道这样做的方法有点像作弊但下面的代码创建一个临时文件,然后删除它.我不希望这种情况发生.这样做有适当或更好的方法吗? command 2 tempset /p OUTPUT=tempdel tempecho %OUTPUT% 我知道有一个使用for循环的解决方案但是对于返回多行结果的命令不起作用.
我知道这样做的方法有点像作弊但下面的代码创建一个临时文件,然后删除它.我不希望这种情况发生.这样做有适当或更好的方法吗? command 2>> "temp" set /p OUTPUT=<"temp" del "temp" echo %OUTPUT% 我知道有一个使用for循环的解决方案但是对于返回多行结果的命令不起作用.我想将所有这些存储到我的变量中. (我试过这个code顺便说一下) 您可以将其包含在包含换行符的单个变量中.setlocal EnableDelayedExpansion set LF=^ REM The two empty lines are required here set "output=" for /F "delims=" %%f in ('dir /b') do ( if defined output set "output=!output!!LF!" set "output=!output!%%f" ) echo !output! 但是由于嵌入式换行,以后处理数据可能有点棘手. 通常使用数组更容易. setlocal EnableDelayedExpansion set "output_cnt=0" for /F "delims=" %%f in ('dir /b') do ( set /a output_cnt+=1 set "output[!output_cnt!]=%%f" ) for /L %%n in (1 1 !output_cnt!) DO echo !output[%%n]! (编辑:阜阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |