dos环境下要指定路径执行里面的一个程序,怎么表示。比如d盘wdos进入d盘的文件夹夹里面的y程序?

xp系统中如何通过命令提示符查找到某个文件,比如d盘下的a文件夹下的b文件,说详细点,_百度知道
xp系统中如何通过命令提示符查找到某个文件,比如d盘下的a文件夹下的b文件,说详细点,
提问者采纳
命令CD 加路径文件夹要进D:车CD A车B
如果B后面还有文件呢,如何进入?
其他类似问题
为您推荐:
命令提示符的相关知识
其他1条回答
你要找的D盘必须是FAT32格式的
另外附送给你个DOS命令:
一、基础命令
无参数:查看当前所在目录的文件和文件夹。
/s:查看当前目录已经其所有子目录的文件和文件夹。
/a:查看包括隐含文件的所有文件。
/ah:只显示出隐含文件。
/w:以紧凑方式(一行显示5个文件)显示文件和文件夹。
/p:以分页方式(显示一页之后会自动暂停)显示。
|more:前面那个符号是“\”上面的那个,叫做重定向符号,就是把一个
命令的结果输出为另外一个命令的参数。more也是一个命令,dir /w |more
得到的结果和dir /w /p的结果是一样的。
其他的参数大家可以用:dir/?查看。
cd 目录名:进入特定的目录。如果看到有个目录显示为:abcdef ghi 就
输入:cdabcdef.ghi进入该目录。
cd\ 退回到根目录。 ...
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁dos下遍历目录和文件的代码(主要利用for命令)
字体:[ ] 类型:转载 时间:
对指定路径指定文件进行遍历的程序,这里有多个批处理代码,但运行好像有些问题,大家可以根据需要选择
===== 文件夹结构 ============================================= D:\test ---A Folder 1 |-----A file 1.txt |-----A file 2.txt |-----A file 3.txt ---B Folder 2 |-----B file 1.txt |-----B file 2.txt |-----B file 3.txt |---B Folder 3 |-----B sub file 1.txt |-----B sub file 2.txt |-----B sub file 3.txt 
代码如下: @echo off set work_path=D:\test D: cd %work_path% for /R %%s in (.,*) do ( echo %%s ) pause
结果 D:\test\. D:\test\A Folder 1\. D:\test\A Folder 1\A file 1.txt D:\test\A Folder 1\A file 2.txt D:\test\A Folder 1\A file 3.txt D:\test\B Folder 2\. D:\test\B Folder 2\B file 1.txt D:\test\B Folder 2\B file 2.txt D:\test\B Folder 2\B file 3.txt D:\test\B Folder 2\B Folder 3\. D:\test\B Folder 2\B Folder 3\B sub file 1.txt D:\test\B Folder 2\B Folder 3\B sub file 2.txt D:\test\B Folder 2\B Folder 3\B sub file 3.txt
代码如下: @echo off set work_path=D:\test D: cd %work_path% for /R %%s in (.) do ( echo %%s ) pause
结果 D:\test\. D:\test\A Folder 1\. D:\test\A Folder 1\A file 1.txt D:\test\A Folder 1\A file 2.txt D:\test\A Folder 1\A file 3.txt D:\test\B Folder 2\. D:\test\B Folder 2\B file 1.txt D:\test\B Folder 2\B file 2.txt D:\test\B Folder 2\B file 3.txt D:\test\B Folder 2\B Folder 3\. D:\test\B Folder 2\B Folder 3\B sub file 1.txt D:\test\B Folder 2\B Folder 3\B sub file 2.txt D:\test\B Folder 2\B Folder 3\B sub file 3.txt 那么
代码如下: for /R %%s in (.,*) do ( echo %%s )
代码如下: for /R %%s in (.) do ( echo %%s )
的区别是什么呢? 在有cd %work_path% 的时候,这两个命令执行的结果是一样的,就像我们上面举的例子。但是 for /R %%s in (.,*) do ( echo %%s ) 的批处理中没有cd %work_path% ,那么显示的将是这个批处理文件所在文件夹下面的遍历结果。
代码如下: @echo off for /R "D:\test" %%s in (.) do ( echo %%s ) pause
结果 D:\test\. D:\test\A Folder 1\. D:\test\B Folder 2\. D:\test\B Folder 2\B Folder 3\.
代码如下: @echo off for /R "D:\test" %%s in (.,*) do ( echo %%s ) pause
结果 D:\test\. D:\test\A Folder 1\. D:\test\A Folder 1\A file 1.txt D:\test\A Folder 1\A file 2.txt D:\test\A Folder 1\A file 3.txt D:\test\B Folder 2\. D:\test\B Folder 2\B file 1.txt D:\test\B Folder 2\B file 2.txt D:\test\B Folder 2\B file 3.txt D:\test\B Folder 2\B Folder 3\. D:\test\B Folder 2\B Folder 3\B sub file 1.txt D:\test\B Folder 2\B Folder 3\B sub file 2.txt D:\test\B Folder 2\B Folder 3\B sub file 3.txt 这样的话看出来区别了吧。 再看一个=================================
代码如下: @echo off for /R "D:\test" %%s in (*) do ( echo %%s ) pause
结果 D:\test\A Folder 1\A file 1.txt D:\test\A Folder 1\A file 2.txt D:\test\A Folder 1\A file 3.txt D:\test\B Folder 2\B file 1.txt D:\test\B Folder 2\B file 2.txt D:\test\B Folder 2\B file 3.txt D:\test\B Folder 2\B Folder 3\B sub file 1.txt D:\test\B Folder 2\B Folder 3\B sub file 2.txt D:\test\B Folder 2\B Folder 3\B sub file 3.txt 就是只显示了文件VisitF.bat - 对指定路径指定文件进行遍历的程序
代码如下: :: VisitF.bat - 对指定路径指定文件进行遍历的程序 :: 第一参数为要遍历的文件(支持通配符),第二参数为要遍历的路径(缺省为C盘根) @echo off :main if [%1]==[] if not exist goto end :init if exist if exist goto loop set file=%1 set base=%2 if [%2]==[] set base=c: dir %base%\%file% /s /a /b & echo e 100 ''set file='' & echo w && echo q && :loop fc nul /n | find " 1:" & setfile.bat if errorlevel 1 goto restore debug setfile.bat nul call setfile.bat echo Visiting the file: %file% :: User specified visit code replace this line find "%file%" /v copy & nul goto loop :restore if exist del if exist del if exist del if exist setfile.bat del setfile.bat :end
VisitD.bat - 对指定路径指定目录进行遍历的程序
代码如下: :: VisitD.bat - 对指定路径指定目录进行遍历的程序 :: 第一参数为要遍历的目录(支持通配符),第二参数为要遍历的路径(缺省为C盘根) @echo off :main if [%1]==[] if not exist goto end :init if exist if exist goto loop set dir=%1 set base=%2 if [%2]==[] set base=c: dir %base%\%dir% /s /ad /b & echo e 100 'set dir=' & echo w && echo q && :loop fc nul /n | find " 1:" & setdir.bat if errorlevel 1 goto restore debug setdir.bat nul call setdir.bat echo Visiting the dir: %dir% :: User specified visit code replace this line find "%dir%" /v copy & nul goto loop :restore if exist del if exist del if exist del if exist setdir.bat del setdir.bat :end
VisitL.bat - 对指定文件列表中的文件进行遍历的程序
代码如下: :: VisitL.bat - 对指定文件列表中的文件进行遍历的程序 :: 参数为要遍历的文件列表 @echo off :main if [%1]==[] if not exist goto end :init set filelist=%1 if [%1]==[] set filelist= if not exist %filelist% goto end copy %filelist% & nul if exist goto loop echo e 100 'set file=' & echo w && echo q && :loop fc nul /n | find " 1:" & setfile.bat if errorlevel 1 goto restore debug setfile.bat nul call setfile.bat echo Visiting the file: %file% :: User specified visit code replace this line find "%file%" /v copy & nul goto loop :restore if exist del if exist del if exist del if exist setfile.bat del setfile.bat :end
VisitI.bat - 对指定路径指定DIR信息的文件进行遍历操作的的程序
代码如下: :: VisitI.bat - 对指定路径指定DIR信息的文件进行遍历操作的的程序 :: 第一参数为指定的DIR信息项,第二参数为要遍历的路径(缺省为当前路径) :: 注意:DIR信息项可以是文件名,扩展名,日期,时间等DIR命令提供的目录信息项 :: 可以同时使用多项,但必须加一对引号,参数格式也须严格符合DIR的信息格式 @echo off :main if [%1]==[] goto end :init if exist if exist goto loop set info=%1 set base=%2 if [%2]==[] set base=. dir %base%\. /s /a /b & echo e 100 ''''set file='''' & echo w && echo q && :loop fc nul /n | find " 1:" & setfile.bat if errorlevel 1 goto restore debug setfile.bat nul call setfile.bat dir "%file%" | find %info% & nul if not errorlevel 1 echo Visit file: "%file%" :: if not errorlevel 1 find "%file%" /v :: "%file%" 参数决定了所匹配的子目录下的所有文件和目录均不会再次匹配 copy & nul goto loop :restore if exist del if exist del if exist del if exist setfile.bat del setfile.bat set info= set file= set base= :end
Visit.bat - 文件遍历批处理程序
代码如下: :: Visit.bat - 文件遍历批处理程序 :: Will Sort - 10/17/2004 - V2 :: :: 程序用途: :: 对指定文件集/目录集/文件列表执行指定操作 :: :: 命令行说明: :: 1. VISIT 文件集/目录集 [参数] :: 对文件集/目录集执行指定操作 :: 2. VISIT @ 文件列表 :: 对指定文件列表中的文件执行指定操作 :: :: 注意事项: :: - 文件集/目录集 中可包含有效路径和通配符 :: - 路径缺省为当前路径,文件集缺省为 *.* (并非所有文件) :: - 文件集/目录集 含空格时需用双引号引起 :: - [参数] 支持的DIR开关: /S /A /O /L等不与 /B 冲突者 :: - [参数] 不支持的DIR开关: /W /P /V 等与 /B 冲突者 :: - [操作] 由调用者预先写入 visitcmd.bat 中 :: - [操作] 中使用 %VisitFile% 引用遍历文件 :: - 程序检查检查 [文件列表] 是否存在,但不检查它是否有效 :: - 不遍历隐藏/系统目录下的目录和文件(在命令行中指定时例外) :: :: 用法示例: :: visit c:\ /ad /s 遍历C盘所有目录,包含子目录 :: visit "C:\My document" /a-d 遍历"C:\My document"下所有文件 :: visit C:\*.zip /a /s 遍历C盘所有.zip压缩包,包含子目录 :: 如想遍历多个文件/目录集,可多次使用"DIR 文件集 /a /s&&文件列表" :: 生成一个完整的文件列表,再使用文件列表进行遍历;或者使用VisitCE.Bat :: 在遍历未显式指定的隐藏/系统目录时,可以用"attrib 文件集 /s"生成 :: 文件列表,然后在visitcmd.bat的代码中引用%VisitFile%第三至最后的串, :: 再使用文件列表进行遍历 :: :: 测试报告: :: 在 Win98 命令行方式下有限黑箱测试通过 :: 性能仍然是最大的瓶颈 :: @echo off if "%1"=="@" goto CopyList :MakeList dir /b %1 %2 %3 %4 %5 %6 & ~ find "~" /v & ~ & ~ if not errorlevel 1 copy ~ ~&nul goto MakePreLine :CopyList if not [%2]==[] if exist %2 copy %2 ~&nul if not exist ~ goto End :MakePreLine echo set VisitFile=& ~ for %%c in (rcx e w q) do echo %%c&& ~ debug ~ & ~ & nul if [%OS%]==[Windows_NT] chcp 936 & nul :LoopVisit copy ~+~ ~ & nul find "set VisitFile=" & ~ & ~visit.bat call ~visit.bat if "%VisitFile%"=="" goto Clear if not exist visitcmd.bat echo Visiting %VisitFile% if exist visitcmd.bat call visitcmd.bat find "set VisitFile=" /v & ~ & ~ goto LoopVisit :Clear del ~visit.* set VisitFile= :End
VisitCE.bat - 文件遍历批处理程序命令行增强版
代码如下: :: VisitCE.bat - 文件遍历批处理程序命令行增强版 :: Will Sort - 10/17/2004 - V2CE :: :: 程序用途: :: 对指定路径/文件列表下的指定文件/目录集执行指定操作 :: :: 命令行说明: :: 1. VISIT [路径1 路径2...] [开关1 开关2...] [文件集1 文件集2...] :: 对 [路径] 和 [开关] 限定下的 [文件集] 执行指定操作 :: 2. VISIT @ 文件列表1 [文件列表2...] :: 对指定 [文件列表] 中的文件执行指定操作 :: :: 注意事项: :: - [路径] [参数] [文件集] 均可不选或多选 :: - [路径] 中不可包含通配符,[文件集] 中可包含有效路径和通配符 :: - [路径] 缺省为当前路径,[文件集] 缺省为 *.* (并非所有文件) :: - [路径] [文件集] 含空格时需用双引号引起 :: - [参数] 支持的DIR开关: /S /A /O /L等不与 /B 冲突者 :: - [参数] 不支持的DIR开关: /W /P /V 等与 /B 冲突者 :: - [操作] 由调用者预先写入 visitcmd.bat 中 :: - [操作] 中使用 %VisitFile% 引用遍历文件 :: - 程序检查检查 [文件列表] 是否存在,但不检查它是否有效 :: - 不遍历隐藏/系统目录下的目录和文件(在命令行中指定时例外) :: :: 用法示例: :: visit c:\ /ad /s 遍历C盘所有目录,包含所有子目录 :: visit "C:\My document" /a-d 遍历"C:\My document"下所有文件 :: visit c:\ d:\ e:\ /s /a /on 遍历C,D,E中所有文件,并按文件名排序 :: visit \ /a 遍历当前盘根目下所有文件和目录 :: 在遍历未显式指定的隐藏/系统目录时,可以用"attrib 文件集 /s"生成 :: 文件列表,然后在visitcmd.bat的代码中引用%VisitFile%第三至最后的串, :: 再使用文件列表进行遍历 :: :: 测试报告: :: 在 Win98 命令行方式下有限黑箱测试通过 :: 性能仍然是最大的瓶颈 :: @echo off if "%1"=="$" goto MakeList if "%1"=="@" goto CopyList if "%1"=="" goto End set VisitCommand=%0 :GetArgu :GetPath if not exist %1.\nul goto GetSwitch set VisitPath=%VisitPath% %1 goto GetNext :GetSwitch echo %1 | find "/" & nul if errorlevel 1 goto GetFilter set VisitSwitch=%VisitSwitch% %1 goto GetNext :GetFilter echo %1 | find "*" & nul if not errorlevel 1 goto SetFilter echo %1 | find "?" & nul if errorlevel 1 goto End :SetFilter set VisitFilter=%VisitFilter% %1 :GetNext shift if not [%1]==[] goto GetArgu %VisitCommand% $ %VisitFilter% :MakeList if not [%VisitPath%]==[] goto ForMake :DirMake dir %2 /b %VisitSwitch% && ~ goto MakeNext :ForMake for %%p in (%VisitPath%) do dir %%p.\%2 /b %VisitSwitch% && ~ :MakeNext shift if not [%2]==[] goto MakeList find "~" /v & ~ & ~ if not errorlevel 1 copy ~ ~&nul goto MakePreLine :CopyList if not [%2]==[] if exist %2 type %2&&~ shift if not [%2]==[] goto CopyList :MakePreLine if not exist ~ goto End echo set VisitFile=& ~ for %%c in (rcx e w q) do echo %%c&& ~ debug ~ & ~ & nul if [%OS%]==[Windows_NT] chcp 936 & nul :LoopVisit copy ~+~ ~ & nul find "set VisitFile=" & ~ & ~visit.bat call ~visit.bat if "%VisitFile%"=="" goto Clear if not exist visitcmd.bat echo Visiting %VisitPath% %VisitSwitch% %VisitFilter% - %VisitFile% if exist visitcmd.bat call visitcmd.bat find "set VisitFile=" /v & ~ & ~ goto LoopVisit :Clear for %%f in (~visit.*) do del %%f for %%e in (Command Path Switch Filter File) do set Visit%%e= :End
在2000sp4 下出现类似的问题,第二个问题实际上也是fc的不兼容问题,他在按行号显示时,每行文字前有8 个字节位,而不是dos6和win9x 下的9 个,所以解决起来也很简单,将debug 脚本中的 e 100 'set file='改为 e 100 'set fil=' 即可。   但是,这只是就事论事而已,以上的提到的三个批处理,只是我在dos 下练兵用的试验原型,做得很粗糙,自从今年3 月份正式转向win98 之后,使用中遇到了很多新问题,比如文件名包含空格的问题,系统/ 隐藏属性目录的问题;在nt下使用,又遇到了中文文件名的问题;而且由于循环体中使用了过多的文本流控制,导致了效率的严重低下;另外,三个程序功能上和实现上并没有太大的差别,没有拆分的必要。   综所上述,将以上代码重写就成为必须。合并代码,弥补漏洞,改善性能,书写文档,就出现了所谓的 V2 版,这中间其实并没有花很多功夫。   然而,一个偶然的下午,突然心血来潮,何不将visit 的命令行功能做一下增强,比如支持多个路径、多个过滤器(filter)、多个文件列表,原想只是加一个命令行参数分析循环,然而真正实现起来,却再次体会到了命令行的复杂,if for嵌套时冲定向输出,判定目录时根目录与子目录的不同,for 对过滤器的低能替换(win9x/dos) ,一个个新问题摩肩接踵,层出不穷,竟然整整耗了我大半个工作日的时间,才勉强实现了一个粗糙的版本,这就是所谓的 V2CE 版,对与严格的测试我没有多大的信心。   现在,再回头看我的工作,其实那个 V2CE 版其实是没有多大的应用价值。多个路径和过滤器,完全可以通过多次调用visit 来实现,而且实际上,我们大多数情况下只用一个路径和过滤器;而且,多参数控制带来了易用度的下降,用户总是对参数繁多的程序有一定的心理障碍,我个人对dos 压缩软件的爱好,从高到低依次是rar,zip,arj, 易用度就是第一靠量;另外,最重要的是,多参数控制导致了代码量和复杂性的大幅提升,这个程序一度让我钻进了if for构建的幽魂迷宫而不知南北西东,程序的可读性越来越差,调试起来也越来越困难,同时兼容性上拉上了更多的绊马索。   这些,就是功能提升所付出的代价,虽然这只是一个比较极端的例子,但是功能与简洁的平衡在程序设计的其重要性可见一斑。亲和性的界面并不意味着亲和性的代码,人性化的需求并不意味着人性化的实现,一味将使用方的复杂性转嫁给设计者(比如Windows), 并不是一个很聪明的主意,反之亦然(比如Linux ),这尚不考虑代码功能增强对设计方和使用方的双重施压。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具}

我要回帖

更多关于 dos 搜索文件夹的路径 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信