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

[文件操作] [已解决]批处理如何获取文件所在文件夹名称

[复制链接]
发表于 2019-6-23 17:15:25 | 显示全部楼层 |阅读模式
例如
manifest.xml的所在文件夹名称  同时获取所在文件夹之前的绝对路径
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b /a /s "%1\manifest.xml"') do (set "p=%%~dpi"
  3.   cd/d "!p!..\."
  4.   call set "pf=%%p:!cd!\=%%"
  5.   echo !p:~,-1!复制到"!pf:~,-1!")
  6. pause
复制代码
发表于 2019-6-23 17:26:15 | 显示全部楼层
本帖最后由 miqilaosu 于 2019-6-23 19:07 编辑

刚才看错了
  1. cd /d %userprofile%\Desktop\A\
  2. for /f %%i in ('dir /b /s 1.txt' ) do echo.%%~dpi
复制代码
在手机上打的没测试反正就是先进入到根目录不然容易出错,然后for读取到%%i
%%~dpi输出就可以了
manifest.xml 这个就是你的1.txt吧 前边加个空格就行  还有在for之前最好用cd进入根目录  不然会读取到a同级别目录里边文件
  1. for /f "delims=" %%b in ('dir /b /a-h /s "%1\*.xml"') do (
  2. cd /d "%1"
  3. for /f "delims=" %%a in ('dir /b /a /s "%1" "\manifest.xml"') do (set "BatDir=%%~dpa"
  4. echo "!BatDir:~,-1!"
  5. ))
复制代码
 楼主| 发表于 2019-6-23 19:06:54 | 显示全部楼层
本帖最后由 smss 于 2019-6-23 20:18 编辑

回复 2# miqilaosu

!BatDir:~,-1!不含\的 盘符路径
能实测下再回复吗 CD到一个变动的循环中 就会进入无限死循环的
发表于 2019-6-23 19:11:33 | 显示全部楼层
回复 3# smss
之前弄过记得是用" delims=/"
实现的 一会用电脑看下
 楼主| 发表于 2019-6-23 19:18:54 | 显示全部楼层
回复 4# miqilaosu

for /f "tokens=1,2 delims=:" %%a in (易经.txt) do echo %%a %%b

看过这样切分的 我太菜还没理解
发表于 2019-6-23 19:44:57 | 显示全部楼层
回复 5# smss


    你去新手练功里看下我那里有大家总结的经验,我记得以前做过
 楼主| 发表于 2019-6-23 20:58:48 | 显示全部楼层
回复 6# miqilaosu 解决了 感谢帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 05:12 , Processed in 0.018748 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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