Board logo

标题: [文件操作] [已解决]批处理如何获取文件所在文件夹名称 [打印本页]

作者: smss    时间: 2019-6-23 17:15     标题: [已解决]批处理如何获取文件所在文件夹名称

例如
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
复制代码

作者: miqilaosu    时间: 2019-6-23 17:26

本帖最后由 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. ))
复制代码

作者: smss    时间: 2019-6-23 19:06

本帖最后由 smss 于 2019-6-23 20:18 编辑

回复 2# miqilaosu

!BatDir:~,-1!不含\的 盘符路径
能实测下再回复吗 CD到一个变动的循环中 就会进入无限死循环的
作者: miqilaosu    时间: 2019-6-23 19:11

回复 3# smss
之前弄过记得是用" delims=/"
实现的 一会用电脑看下
作者: smss    时间: 2019-6-23 19:18

回复 4# miqilaosu

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

看过这样切分的 我太菜还没理解
作者: miqilaosu    时间: 2019-6-23 19:44

回复 5# smss


    你去新手练功里看下我那里有大家总结的经验,我记得以前做过
作者: smss    时间: 2019-6-23 20:58

回复 6# miqilaosu 解决了 感谢帮助




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2