ozc*_*unc 6 windows command batch-file
我知道这样做的方法有点像作弊但下面的代码创建一个临时文件,然后删除它.我不希望这种情况发生.这样做有适当或更好的方法吗?
command 2>> "temp"
set /p OUTPUT=<"temp"
del "temp"
echo %OUTPUT%
Run Code Online (Sandbox Code Playgroud)
我知道有一个使用for循环的解决方案但是对于返回多行结果的命令不起作用.我想将所有这些存储到我的变量中.(我试过这个代码顺便说一句)
您可以将其放入包含换行符的单个变量中。
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!
Run Code Online (Sandbox Code Playgroud)
但是由于嵌入的换行,以后处理数据可能会有些棘手。
每个变量仍然有8190个字符的限制。
通常,使用数组更容易。
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]!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10396 次 |
| 最近记录: |