Board logo

标题: [特效代码] 如何将DIR的结果赋值给变量 [打印本页]

作者: raozhao2008    时间: 2008-10-23 13:20     标题: 如何将DIR的结果赋值给变量

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

以上代码只能显示其结果
请问该怎样键这个结果赋值给一个变量
作者: rat    时间: 2008-10-23 13:32

for /f
作者: youxi01    时间: 2008-10-23 15:34

测试代码(将代码保存为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
复制代码

作者: raozhao2008    时间: 2008-10-24 13:01     标题: 回复 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 编辑 ]
作者: Batcher    时间: 2008-10-24 13:45     标题: 回复 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
复制代码

作者: raozhao2008    时间: 2008-10-24 14:09     标题: 回复 5楼 的帖子

离要求还差那么一点点
在搜索出文件之前并不知道要哪个路径啊
我要的效果是 搜索出文件,显示了路径后再做出选择
能否达到目的
作者: Batcher    时间: 2008-10-24 14:32     标题: 回复 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
复制代码

作者: terse    时间: 2008-10-24 14:33

这样呢
  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
复制代码

作者: raozhao2008    时间: 2008-10-24 15:34     标题: 回复 8楼 的帖子

刚才试过了我想全盘搜索,改了又改,还是没成功
FOR语句太难了
再麻烦一下
全盘搜索
再将所选择的路径赋值给另一个变量
作者: terse    时间: 2008-10-24 15:55

  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 编辑 ]
作者: Batcher    时间: 2008-10-24 16:40     标题: 回复 10楼 的帖子

这个方法遇到软驱会报错
作者: terse    时间: 2008-10-24 16:58

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

恩  是的 当然是有几种选择的
WMIC 和 fsutil 都可以的 我去更改一下
作者: Batcher    时间: 2008-11-4 16:57     标题: 回复 13楼 的帖子

有问题请单独发帖提问,你在别人的帖子里面跟帖提问的话,很少有人能看到你的问题,愿意回答问题的就更少了。




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