[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 怎样利用管道将命令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 的解答。。
这搜索这功能又让我长进了不少。
说句实话。。
在这坛子里我真的学到了不少东西。。
   多谢各位版主的耐心教导。。
   感谢。。

TOP

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

评分人数

心绪平和,眼藏静谧。

TOP

返回列表