Batch file 批处理:获取文件的相对文件路径
我需要使用bat获取文件的相对文件路径 文件夹结构Batch file 批处理:获取文件的相对文件路径,batch-file,Batch File,我需要使用bat获取文件的相对文件路径 文件夹结构 file.bat - folder1 -- subfolder1 ----- abc.image ----- def.image -- subfolder2 ---- more.image - folder2 -- subfolder1 ---- alsoimages.image -- subfolder2 对于abc.image,我想获取文件夹的名称(此处为folder1)和文件夹+子文件夹的组合(此处为folder1/子文件夹1) 我看了
file.bat
- folder1
-- subfolder1
----- abc.image
----- def.image
-- subfolder2
---- more.image
- folder2
-- subfolder1
---- alsoimages.image
-- subfolder2
对于abc.image,我想获取文件夹的名称(此处为folder1)和文件夹+子文件夹的组合(此处为folder1/子文件夹1)
我看了这篇文章:
但是我不能让它为我工作。输出总是给我太多的层次结构
我最终想做的是:
set "prefix=td"
set "file=list_of_images.xml"
echo ^<?xml version="1.0" encoding="UTF-8" standalone="yes"?^> > %file%
echo ^<files^> >> %file%
for /r %%x in (*.image) do (
echo ^<file folder="(here e.g. folder1)" subfolder="(here e.g. folder1/subfolder1)" id="%prefix%%%~nx" type="image" /^> >> %file%
)
echo ^</files^> >> %file%
设置“prefix=td”
设置“file=list\u of_images.xml”
echo^>%文件%
echo^>>%文件%
对于(*.image)中的/r%%x,请执行(
echo^>>%文件%
)
echo^>>%文件%
谢谢你的帮助和提示 下一个代码片段可能会有所帮助:
for /r %%x in (*.image) do (
for /F "tokens=1* delims=\" %%G in ("%%~px") do (
echo "%%~G" "%%~H" "%prefix%%%~nx"
)
)
正在拆分到多个子文件夹:
for /r %%x in (*.image) do (
for /F "tokens=1,2* delims=\" %%G in ("%%~px") do (
echo "%%~G" "%%~H" %%~I "%prefix%%%~nx"
)
)
以此类推……对于/f“tokens=1,*delims=\”%%a,在
xcopy“\*.image”“%temp%”/s/e/l
“)如果不是“%%b”==”回显(%%b
获取具有相对路径的文件列表的最简单方法是使用xcopy
命令生成文件列表(/l
)
您还可以使用subst
命令创建一个“虚拟”驱动器盘符,驱动器的根指向所需的起始文件夹,然后使用相同的代码引用此驱动器,现在将无法检索上部文件夹结构
file.bat
- folder1
-- subfolder1
----- abc.image
----- def.image
-- subfolder2
---- more.image
- folder2
-- subfolder1
---- alsoimages.image
-- subfolder2
编辑以适应评论
for/f“tokens=2-4 delims=\”%%a in('
xcopy“\*.image”“%temp%”/s/e/l
“)do echo文件夹=%%a子文件夹=%%b文件=%%c
xcopy
命令的输出格式为
.\folder\subfolder\file
因此,使用反斜杠作为分隔符,我们跳过第一个标记,检索第二个(文件夹)、第三个(子文件夹)和第四个(文件)好的,这一个非常有效。但是如何从folder/folder1/abc.image中获取子字符串,从而获得“folder1”和“folder1/subfolder1”?