如何在BAT中为一个变量赋予多行内容

我做一个BAT,在屏幕上输出GDISK返回的多行信息。但是这个程序之前的提示信息我要通过CLS清掉。所以我用for/f"skip=1tokens=*"%%ain('gdi... 我做一个BAT ,在屏幕上输出GDISK返回的多行信息。但是这个程序之前的提示信息我要通过CLS清掉。所以我用for /f "skip=1 tokens=* " %%a in ('gdisk32') do set di=%%i 来赋予变量的值。但是di只能被赋予最后一行的值。这个命令我应该怎么写 才能赋予DI多行的值。多几个变量也可以。必须赋予变量 以后的编辑还要用呢 展开
 我来答
CyraSafia
推荐于2016-11-16 · TA获得超过1940个赞
知道大有可为答主
回答量:945
采纳率:0%
帮助的人:1288万
展开全部
提供两种方法

1.用一个临时文件
::把gdisk32的输出放入临时文件_gdisk32.tmp
gdisk32>>_gdisk32.tmp

::把_gdisk32.tmp的内容回显到屏幕
type _gdisk32.tmp

::如果程序需要调用的话再用for语句取
for /f "skip=1 tokens=*" %%a in (_gdisk32.tmp) do something

2.自定义一个分隔符,把所有内容附加到一个变量
比如说gdisk32的输出中不包含$符号,就用$作为行分隔符

::由于要在for语句中循环赋值,必须打开延缓变量替换
setlocal enabledelayedexpansion

::把每次取到的%%i值附加到原来的字符串di后面,中加插入一个$号
for /f "skip=1 tokens=* " %%a in ('gdisk32') do set di=!di!$%%i

::取回变量时用¥断句
for /f "delims=$ tokens=1,2,3" %%a in ('echo %di%') do something
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式