标题: for 语句 分配多个变量的问题
[打印本页]
作者: icebat
时间: 2010-11-17 13:48
标题: for 语句 分配多个变量的问题
--------------------------------------------------
for /f "tokens=1 delims=:" %%o in (%temp%\test2.tmp) do (
echo "%%~o"
echo "%%~p"
)
--------------------------------------------------
我想把找到的结果分成 2个,储存在变量O 和P 里面,不行啊,请指点下
test2.tmp 里面的内如如下
-----------------------------------
c:
d:
------------------------------------
现在我明白了,原来是以一行为整体来分隔,不能分割到下一行。
不用skip ,怎么才能 把这两个路径分别分配到两个变量上?
作者: huahua0919
时间: 2010-11-17 14:14
@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
作者: icebat
时间: 2010-11-17 14:23
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%
这是我自己的解决方法, 但是觉得不太好。
楼上大哥比我这个好一些,我觉得还是不够完美,还有没有其他的方法啊。
作者: wewebb
时间: 2010-11-17 21:29
Rem 类似数组的变量
@echo off & Setlocal EnableDelayedExpansion
for /f %%a in ('findstr ":" "%temp%\test2.tmp"') do (
set /a n+=1
set "Drv[!n!]=%%a"
)
echo 共有 !n! 个盘符。盘符变量分别保存在 Drv[1] --- Drv[!n!] 变量中
pause
[
Last edited by wewebb on 2010-11-17 at 21:35 ]