Board logo

标题: [文本处理] 怎样利用管道将命令dir的输出赋值给另一变量 [打印本页]

作者: xu290780142    时间: 2008-11-16 15:48     标题: 怎样利用管道将命令dir的输出赋值给另一变量

假设我硬盘里某一处有一个子文件夹b,我想做一个搜索的脚本,将文件夹b的地址赋值给变量n

我用的是这样一个脚本:
@echo off
set /p a=请输入您想搜索的盘符:
set  b=b
cd.>1.txt
dir /a/s/b %a%:\%b% >>1.txt
for /f %%i in ( 1.txt) do set n=%%i

echo n=%n%
pause >nul

另:我已排除了要搜索的文件夹的路径中存在其它字符的可能,比如空格括号等等,也就是说,我所搜索到的路径中没有别的符号存在。

现在我不想利用这临时的1.txt文件。直接用管道输出将dir 得出的结果赋值给变量n

  嘿嘿,首先申明,我对管道输出还不是很熟,我用的是这样一条。
dir /a/s/b %a%:\%b% |set /p n=
或者
for %%i in ( C D E F  ) do (
dir /a/s/b %%i:\%b% |set /p n=
)
我知道这样两条肯定不对(因为运行不了^^) 但我不知道这个怎么用,望各位斑竹大侠们能指点一下。。
作者: pusofalse    时间: 2008-11-16 15:57

用for,另外一个变量中不能有回车符,这是肯定的。。。
for %%a in (c d e f) do for /f "delims=" %%i in ('dir /a /s /b "%%a:\%b%"') do (set "var=%%i")
作者: xu290780142    时间: 2008-11-16 16:20

哈哈。非常感谢pusofalse 的解答。。
这搜索这功能又让我长进了不少。
说句实话。。
在这坛子里我真的学到了不少东西。。
   多谢各位版主的耐心教导。。
   感谢。。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2