如何用批处理 改文件名前面加目录名

多级文件夹如下:总目录/子目录1/0001.jpg总目录/子目录1/0002.jpg.....总目录/子目录5/0020.jpg我需要实现将原有的0001.jpg等文件前... 多级文件夹如下:
总目录/子目录1/0001.jpg
总目录/子目录1/0002.jpg
.....
总目录/子目录5/0020.jpg
我需要实现将原有的0001.jpg等文件前面添加文件夹名为:子目录1_0001.jpg
谢谢各路大神出手相救。。
展开
 我来答
qop_dob
2020-03-01 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:3967万
展开全部
不清楚你的实际文件/情况,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xx.bat,编码选ANSI
@echo off
rem 在多个子文件夹里的jpg文件的名称前面/开头添加其所在文件夹的名称前缀
mode con lines=3000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set "folder=D:\总目录"
if not exist "%folder%" (echo;"%folder%" no found&goto end)
if "%folder:~-1%" equ "\" set "folder=%folder:~,-1%"
for /f "delims=" %%a in ('dir /ad/b "%folder%\"') do (
    pushd "%folder%\%%~nxa\"
    for /f "delims=" %%b in ('dir /a-d/b *.jpg 2^>nul') do (
        echo;"%%~nxa\%%~nxb" --^> "%%~nxa_%%~nxb"
        ren "%%b" "%%~nxa_%%~nxb"
    )
    popd
)
:end
echo;%#% +%$%%$%/%@% %z%
pause
exit
更多追问追答
追问

你好,我试了一下,没有作用啊,文件名没有改变,最后提示找不到文件,按任意键继续。

追答

我猜你这里没改或改错了

('dir /ad/b/s "D:\总目录"')

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式