[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 母文件夹下的子文件夹名添加到到子文件夹下的文件尾部中间用@符号隔开

本帖最后由 pcl_test 于 2018-5-13 23:16 编辑

求助:


有一个文件A下面有 子文件夹 M1,M2,M3 其中:

M1 文件夹下有文件:
aaa.png
bbb.png
ccc.png

M2 文件夹下有文件:
aaa.png
bbb.png
ccc.png

M3 文件夹下有文件:
aaa.png
bbb.png
ccc.png

现去要做一个批处理文件,对A下面有 子文件夹 M1,M2,M3内的文件进行重命名,将 子文件夹名称放到 png图片后面,中间用" @" 或者 "—" 符号隔开 输出结果为

M1 文件夹下有文件:
aaa-M1.png
bbb-M1.png
ccc-M1.png

M2 文件夹下有文件:
aaa-M2.png
bbb-M2.png
ccc-M2.png

M3 文件夹下有文件:
aaa-M3.png
bbb-M3.png
ccc-M3.png

  1. for /d %%a in (*) do for %%b in ("%%a\*") do ren "%%b" "%%a-%%~nxb"
复制代码

TOP

大神这独爱代码是 将 文件夹名称添加到 文件 头部, 我希望是尾部 怎么弄呢

TOP

本帖最后由 web 于 2018-5-13 09:08 编辑
  1. for /d %%a in (*) do for %%b in ("%%a\*") do set a=%%a &ren "%%b" "%%~nb@%a%%%~xb"
复制代码
多看一下for 命令


%~nI - 仅将 %I 扩展到一个文件名
%~xI - 仅将 %I 扩展到一个文件扩展名
分开写一下

TOP

本帖最后由 tigerpower 于 2018-5-16 06:22 编辑
  1. powershell -c "ls -R -file|ren -new {'{0}@{1}{2}' -f $_.BaseName,$_.Directory.Name,$_.Extension}
复制代码

TOP

老大还是有点问题,  能不能就执行一个批处理,在A文件夹下 有一个  添加文件名为子文件夹后缀的批处理.bat,  文件结构为
A 文件夹下
--添加文件名为子文件夹后缀的批处理.bat
--M1  (M1 文件夹下 包含 aaa.png)
--M2  (M1 文件夹下 包含 bbb.png)
--M3   (M1 文件夹下 包含 ccc.png)

这时候,点击改批处理文件(只需点击一次即可)
子文件夹下的图片进行重命名, 结构为  [文件名称][子文件夹名称][@符号][扩展名]

生成结果为:
--M1  (M1 文件夹下 aaa@M1.png)
--M2  (M1 文件夹下 包含 bbb@M2.png)
--M3   (M1 文件夹下 包含 ccc@M3.png)

TOP

另起新帖-母文件夹下的子文件夹名添加到到子文件夹下的文件尾部中间用@符号隔开

本帖最后由 smilingming 于 2018-5-13 23:06 编辑

原帖
由于需求没表达清楚,另起新帖说明:
原帖为:http://www.bathome.net/viewthrea ... %26amp%3Btypeid%3D7
需求为:-在母文件夹下执行一次批处理,母文件夹下的子文件夹名重命名到子文件夹下的文件尾部中间用@符号隔开
A 文件夹下
--添加文件名为子文件夹后缀的批处理.bat
--M1文件夹  (M1 文件夹下 包含文件 aaa.png)
--M2文件夹   (M1 文件夹下 包含文件 bbb.png)
--M3文件夹   (M1 文件夹下 包含文件 ccc.png)

点击A文件夹下的批处理文件(只需点击一次即可)
子文件夹下的图片重命名, 结构为  [原文件名称][@符号][子文件夹名称][扩展名]

生成结果为:
--M1文件夹  (M1 文件夹下 新文件名为:aaa@M1.png)
--M2文件夹  (M2 文件夹下 新文件名为:bbb@M2.png)
--M3文件夹  (M3 文件夹下 新文件名为:ccc@M3.png)

TOP

本帖最后由 yhcfsr 于 2018-5-14 12:24 编辑

回复 7# smilingming
  1. for /d %%a in (*) do for /f "delims=" %%b in ('dir /a-d/b "%%a\*"') do ren "%%b" "%%~nb@%%~nxa%%~xb"
复制代码
QQ 33892006

TOP

回复 8# yhcfsr


    dir 的话有一个相对路径问题
... ren "%%a\%%b" "%%~nb@%%~nxa%%~xb"

TOP

返回列表