找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21860|回复: 2

[其他] [已解决]批处理FOR循环命令不能取多个值并单独设为变量?

[复制链接]
发表于 2012-6-24 11:28:43 | 显示全部楼层 |阅读模式
  1. @echo off
  2. for /f "skip=1 tokens=*" %%i in ('wmic DISKDRIVE get caption') do (
  3. if not "%%i"=="" set HDD1=%%i
  4. if not "%%j"=="" set HDD2=%%j
  5. if not "%%k"=="" set HDD3=%%k
  6. )
  7. @echo %HDD1%
  8. @echo %HDD2%
  9. @echo %HDD3%
复制代码
以上代码想法:  wmic DISKDRIVE get caption命令列出所有硬盘型号并将每个硬盘型号设置为单独的变量。
出现的问题:    以上代码只能对%%i作赋值,%%j和%%k无效。

请教一下如何改动才能实现单独赋值,并请高手指出以上代码为什么会%%j和%%k赋值无效。谢谢!

评分

参与人数 1PB +2 收起 理由
zqz0012005 + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-6-24 11:48:20 | 显示全部楼层
本帖最后由 cb02356828 于 2012-6-24 11:53 编辑

%%j %%k 是同一行的,试试这个

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "skip=1 tokens=*" %%i in ('wmic DISKDRIVE get caption') do (
  3. if not "%%i"=="" (
  4. set/a n+=1
  5. set !n!=%%i
  6. echo HDD!n! %%i
  7. ))
  8. pause>nul
复制代码

评分

参与人数 2技术 +2 收起 理由
a7701 + 1 乐于助人
zqz0012005 + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-6-24 16:36:38 | 显示全部楼层
非常感谢cb02356828,明白了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 06:08 , Processed in 0.018417 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表