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

[文件操作] 【已解决】BAT批处理命令dir如何显示当前目录完整文件路径?

本帖最后由 zhanglei1371 于 2014-2-9 14:35 编辑

dir /b:只显示当前目录文件名
dir/b/s:显示包括子目录在内的完整路径,
如果想只显示当前目录下文件的完整路径,而不含子目录,该如何用dir实现?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

for + dir
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b') do echo,%~dp0%%a
  3. pause
复制代码
dir + findstr
  1. @echo off
  2. set "p=%~dp0"
  3. dir /b /s|findstr /ire "%p:\=\\%[^\\]*"
  4. pause
复制代码
1

评分人数

TOP

本帖最后由 zhanglei1371 于 2014-2-8 20:21 编辑

回复 2# apang


    感谢apang大师,问题已解决。已知道含义

TOP

回复 3# zhanglei1371


    哪里不懂问哪里

TOP

findstr /ire "%p:\=\\%[^\\]*" 是什么意思?正则表达式吗?

TOP

回复 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\\[^\\]*
其中 [^\\] 表示一个不是斜线的字符,[^\\]* 表示一个不是斜线的字符串,实际上就是匹配了一个文件名

TOP

返回列表