标题: [文件操作] [已解决]批处理如何根据扩展名获取不带文件名的完整路径? [打印本页]
作者: y169168712 时间: 2011-4-17 02:48 标题: [已解决]批处理如何根据扩展名获取不带文件名的完整路径?
本帖最后由 y169168712 于 2011-4-17 13:16 编辑
在d盘里有很多txt文件,我想得到它们不带文件名的路径,
例如有一个文件name.txt
D:\目录名\目录名\name.txt
我想得到
D:\目录名\目录名
作者: TX_kakashi 时间: 2011-4-17 03:00
要过滤重复的路径么?- @echo off&setlocal
- for /f "tokens=*" %%a in ('dir/b/s/a-d *.txt') do (
- echo %%~dpa
- )
- pause
复制代码
作者: batman 时间: 2011-4-17 12:11
- @echo off
- for /r d: %%a in (*.txt) do echo %%~dpa
- pause>nul
复制代码
作者: y169168712 时间: 2011-4-17 13:25
本帖最后由 y169168712 于 2011-4-17 13:27 编辑
能过滤重复路径的就更好了
作者: Batcher 时间: 2011-4-17 13:30
4# y169168712
顶楼发帖时为何不说清楚这个需求呢?
作者: CrLf 时间: 2011-4-17 13:47
本帖最后由 zm900612 于 2011-4-17 14:37 编辑
- @echo off
- for /r /d %%a in (*) do if exist "%%a\*.txt" echo %%a
- pause
复制代码
作者: y169168712 时间: 2011-4-17 14:09
本帖最后由 y169168712 于 2011-4-17 14:17 编辑
5# Batcher
下次我会把问题一次性都说完的,这次是2楼的兄弟提醒了我
作者: TX_kakashi 时间: 2011-4-17 15:08
那改进一下便可.- @echo off&setlocal
- for /f "tokens=*" %%a in ('dir/b/s/a-d d:\*.txt') do (
- if not defined "%%~dpa" (echo %%~dpa&&set ""%%~dpa"=s" >nul 2>nul)
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |