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

[特效代码] 如何将DIR的结果赋值给变量

  1.   dir /s /b C:\*font*
  2. dir /s /b /ad C:\*font*
复制代码

以上代码只能显示其结果
请问该怎样键这个结果赋值给一个变量

for /f

TOP

测试代码(将代码保存为test.bat):
  1. @echo off
  2. echo 正在查找,请稍等...
  3. for /f "delims=" %%i in ('dir /s /b C:\*font*') do echo %%i
  4. echo 查找完成。
  5. pause>nul
复制代码
2

评分人数

    • raozhao2008: 测试通过,但新的问题又来了 搜索到的文件 ...PB + 4
    • lixiaodaoaaa: 代码写的不错,哈哈,学习了PB + 2

TOP

回复 3楼 的帖子

  1. @echo off
  2. for %%a in (C D E F) DO for /f "delims=" %%b in ('dir /s /b C:\*font*') do echo %%b
  3. pause
复制代码

如果上面代码的结果为
c:\1\
d:\1\2\
f:\
我要选择c:\1\
或d:\1\2\
或f:\
该怎样做
我想要的效果是按指定键选择一个对应路径

[ 本帖最后由 raozhao2008 于 2008-10-24 13:02 编辑 ]

TOP

回复 4楼 的帖子

  1. @echo off
  2. set /p row=你想查看第几个路径?
  3. for %%a in (C D E F) do (
  4.   for /f "skip=%row% delims=" %%b in ('dir /s /b C:\*font*') do (
  5.     echo %%b
  6.     goto :eof
  7.   )
  8. )
  9. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5楼 的帖子

离要求还差那么一点点
在搜索出文件之前并不知道要哪个路径啊
我要的效果是 搜索出文件,显示了路径后再做出选择
能否达到目的

TOP

回复 6楼 的帖子

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for %%a in (C D E F) do (
  5.   for /f "skip=%row% delims=" %%b in ('dir /s /b C:\*font*') do (
  6.     echo %%b
  7.     set /a n+=1
  8.     set p!n!=%%b
  9.   )
  10. )
  11. set /p row=你想查看第几个路径?
  12. echo !p%row%!
  13. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

这样呢
  1. @echo off
  2.   for /f "tokens=1* delims=:" %%a in ('dir /s /b C:\*font*^|findstr /in .*') do (
  3.     set ".%%a=%%b"
  4.     echo %%a %%b
  5.    
  6. )
  7. set /p n=请输入文件前的序号
  8. call echo %%.%n%%%
  9. pause
复制代码

TOP

回复 8楼 的帖子

刚才试过了我想全盘搜索,改了又改,还是没成功
FOR语句太难了
再麻烦一下
全盘搜索
再将所选择的路径赋值给另一个变量

TOP

  1. @echo off
  2. for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do (
  3.   for /f "tokens=1* delims=:" %%a in ('dir /s /b %%i*font*^|findstr /in .*') do (
  4.     set ".%%a=%%b"
  5.     echo %%a %%b
  6.     ))
  7. set /p n=请输入文件前的序号
  8. call echo %%.%n%%%
  9. pause
复制代码

[ 本帖最后由 terse 于 2008-10-24 17:04 编辑 ]

TOP

回复 10楼 的帖子

这个方法遇到软驱会报错
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2008-10-24 16:40 发表
这个方法遇到软驱会报错

恩  是的 当然是有几种选择的
WMIC 和 fsutil 都可以的 我去更改一下

TOP

回复 13楼 的帖子

有问题请单独发帖提问,你在别人的帖子里面跟帖提问的话,很少有人能看到你的问题,愿意回答问题的就更少了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表