中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-25 11:14
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » for 语句 分配多个变量的问题 查看 935 回复 3
楼 主 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 ]
论坛跳转: