标题: [文件操作] 【已解决】BAT批处理命令dir如何显示当前目录完整文件路径? [打印本页]
作者: zhanglei1371 时间: 2014-2-8 10:27 标题: 【已解决】BAT批处理命令dir如何显示当前目录完整文件路径?
本帖最后由 zhanglei1371 于 2014-2-9 14:35 编辑
dir /b:只显示当前目录文件名
dir/b/s:显示包括子目录在内的完整路径,
如果想只显示当前目录下文件的完整路径,而不含子目录,该如何用dir实现?
作者: apang 时间: 2014-2-8 13:43
for + dir- @echo off
- for /f "delims=" %%a in ('dir /b') do echo,%~dp0%%a
- pause
复制代码
dir + findstr- @echo off
- set "p=%~dp0"
- dir /b /s|findstr /ire "%p:\=\\%[^\\]*"
- pause
复制代码
作者: zhanglei1371 时间: 2014-2-8 18:07
本帖最后由 zhanglei1371 于 2014-2-8 20:21 编辑
回复 2# apang
感谢apang大师,问题已解决。已知道含义
作者: DAIC 时间: 2014-2-8 20:08
回复 3# zhanglei1371
哪里不懂问哪里
作者: aaboy 时间: 2014-2-14 09:23
findstr /ire "%p:\=\\%[^\\]*" 是什么意思?正则表达式吗?
作者: DAIC 时间: 2014-2-14 09:54
回复 5# aaboy
%p:\=\\% 是字符串替换,目的是把变量p里面保存的路径中的 \ 替换成 \\
替换的结果和后面的 [^\\]* 一起作为正则表达式交给 findstr 命令去处理
假设当前路径是:
C:\test\
当前目录下面有以下文件:
C:\test\a.txt
C:\test\test.bat
C:\test\folder\b.txt
变量 p 里面保存的路径是 C:\test\
经过 %p:\=\\% 替换得到的结果是 C:\\test\\
整个正则表达式就是 C:\\test\\[^\\]*
其中 [^\\] 表示一个不是斜线的字符,[^\\]* 表示一个不是斜线的字符串,实际上就是匹配了一个文件名
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |