楼 主
for 语句 分配多个变量的问题
发表于 2010-11-17 13:48 · 中国 重庆 电信
初级用户
★
积分 20 发帖 11 注册 2009-12-05 17:26 16年会员 UID 155977 性别 男
状态 离线
--------------------------------------------------
for /f "tokens=1 delims=:" %%o in (%temp%\test2.tmp) do (
echo "%%~o"
echo "%%~p"
)
--------------------------------------------------
我想把找到的结果分成 2个,储存在变量O 和P 里面,不行啊,请指点下
test2.tmp 里面的内如如下
-----------------------------------
c:
d:
------------------------------------
现在我明白了,原来是以一行为整体来分隔,不能分割到下一行。
不用skip ,怎么才能 把这两个路径分别分配到两个变量上?
第 2 楼
发表于 2010-11-17 14:14 · 中国 江苏 苏州 电信
银牌会员
★★★
积分 1,608 发帖 780 注册 2007-10-07 10:19 18年会员 UID 99089 性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (test2.tmp) do (
set /a n+=1
if !n! equ 1 (set O=%%i) else (set P=%%i)
)
echo.%O%
echo.%P%
pause
第 3 楼
发表于 2010-11-17 14:23 · 中国 重庆 电信
初级用户
★
积分 20 发帖 11 注册 2009-12-05 17:26 16年会员 UID 155977 性别 男
状态 离线
for /f "tokens=1" %%b in ('findstr /i "可移动驱动器" "%temp%\test1.tmp"') do (
echo "%%b" >>"%temp%\test2.tmp"
ren "%temp%\test2.tmp" test3.tmp
)
for /f "tokens=1" %%p in (%temp%\test2.tmp) do (
set var=%%~p
)
for /f "tokens=1" %%o in (%temp%\test3.tmp) do (
set var2=%%~o
)
echo %var2%
echo %var%
这是我自己的解决方法, 但是觉得不太好。
楼上大哥比我这个好一些,我觉得还是不够完美,还有没有其他的方法啊。
第 4 楼
发表于 2010-11-17 21:29 · 中国 广东 佛山 顺德区 联通
初级用户
★★
积分 66 发帖 53 注册 2009-10-09 20:51 16年会员 UID 152852 性别 男
状态 离线
Rem 类似数组的变量
@echo off & Setlocal EnableDelayedExpansion
for /f %%a in ('findstr ":" "%temp%\test2.tmp"') do (
set /a n+=1
set "Drv=%%a"
)
echo 共有 !n! 个盘符。盘符变量分别保存在 Drv --- Drv 变量中
pause
[
Last edited by wewebb on 2010-11-17 at 21:35 ]
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正