找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33279|回复: 5

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

[复制链接]
发表于 2014-2-8 10:27:08 | 显示全部楼层 |阅读模式
本帖最后由 zhanglei1371 于 2014-2-9 14:35 编辑

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

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2014-2-8 13:43:05 | 显示全部楼层
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技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2014-2-8 18:07:51 | 显示全部楼层
本帖最后由 zhanglei1371 于 2014-2-8 20:21 编辑

回复 2# apang


    感谢apang大师,问题已解决。已知道含义
发表于 2014-2-8 20:08:58 | 显示全部楼层
回复 3# zhanglei1371


    哪里不懂问哪里
发表于 2014-2-14 09:23:37 | 显示全部楼层
findstr /ire "%p:\=\\%[^\\]*" 是什么意思?正则表达式吗?
发表于 2014-2-14 09:54:38 | 显示全部楼层
回复 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\\[^\\]*
其中 [^\\] 表示一个不是斜线的字符,[^\\]* 表示一个不是斜线的字符串,实际上就是匹配了一个文件名
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 01:45 , Processed in 0.031924 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表