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

[文件操作] 批处理如何在文件名上加上除盘符外的目录名?

[复制链接]
发表于 2016-3-9 14:29:16 | 显示全部楼层 |阅读模式
比如:F:\博士\3-5\梦幻空间-\留作     
这个目录下面有2个文件 1个是           如果.jpg    喜欢.jpg      
我把bat放到梦幻空间   这个文件夹中运行后   
如果.JPG的名字就变成     F:博士3-5梦幻空间-留作-如果.jpg   
喜欢.JPG的名字就变成     F:博士3-5梦幻空间-留作-喜欢.jpg   
如果名字中不出现  F:  就更好了!!  意
思就是搜索当前文件夹内所有的JPG文件 在原来名字不变的基础上面加上全面路径名字!!
   一个一个的复制路径在粘贴到文件名字 实在是累死了!  求代码 只要帮我解决了问题,留下微信号码。发红包20元。

评分

参与人数 1PB -4 收起 理由
pcl_test -4 勿发笼统无意义的标题

查看全部评分

发表于 2016-3-9 15:25:15 | 显示全部楼层
本帖最后由 ivor 于 2016-3-9 16:55 编辑

回复 1# zhuhuade

批处理所在位置的所有子目录jpg改名,使用前请备份
  1. @echo off&setlocal  ENABLEDELAYEDEXPANSION
  2. for /f "delims=" %%a in ('dir /s /b *.jpg') do (
  3.         set "a=%%~pa"
  4.         set "a=!a:\= _ !%%~nxa"
  5.         ren "%%a" "!a:~3!"
  6. )
  7. pause
复制代码
如果感觉好,请支持论坛
http://www.bathome.net/thread-10403-1-1.html

评分

参与人数 1技术 +1 收起 理由
zhuhuade + 1 真大神

查看全部评分

 楼主| 发表于 2016-3-9 16:09:57 | 显示全部楼层
哥们 留下你的微信号码 谢谢·
 楼主| 发表于 2016-3-9 16:13:07 | 显示全部楼层
回复 2# ivor


    留下微信号码  兄弟
 楼主| 发表于 2016-3-9 16:18:41 | 显示全部楼层
回复 2# ivor


    能不能改成      博士丨3-5丨梦幻空间丨留作丨如果.jpg      
  以为文件名字中不能用有\ 这个符号   我想换成丨 符号 这样就可以一目了然了   能做到吗 ?
发表于 2016-3-9 16:49:53 | 显示全部楼层
回复 5# zhuhuade

    我用 _ 分割了,2楼代码已更新

如果感觉好,请支持一下论坛,帮助更多的人
http://www.bathome.net/thread-10403-1-1.html

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 卧槽,真是好人

查看全部评分

 楼主| 发表于 2016-3-9 17:25:32 | 显示全部楼层
回复 2# ivor


    太给力了。兄弟啊。  我每天最少可以节省2-3个小时了。  真心非常感谢  跪求 微信号码  我发你50红包
 楼主| 发表于 2016-3-9 17:26:55 | 显示全部楼层
回复 7# happy886rr


    谢谢你的这个代码,这个用起来有点麻烦   因为我的文件很多  而且每个文件夹都有  有些在5-6层的
发表于 2016-3-9 20:14:04 | 显示全部楼层
本帖最后由 happy886rr 于 2016-3-9 20:47 编辑

回复 9# zhuhuade
我升级了我的程序,增强版。兼容任意多层子目录。直接命名批处理当前目录下的所有子目录jpg。
既可以重命名,也可以还原文件原始名.你的路径改变后,文件名也可以一键附加新路径。
此批处理,智能判断。当你将批处理命名为 还原.bat 时,它就还原所有子目录jpg为原始名。批处理名为其他名时,重新附加jpg新路径到文件名上。

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo 还原名称中...
  4. for /f "tokens=1,2 delims=▼" %%a in ('dir /s /b *.jpg^|find "▼"') do (
  5.         ren "%%a▼%%b" "%%b"
  6. )
  7. if "%~n0"=="还原" (goto end)
  8. echo 重新命名中...
  9. for /f "delims=" %%a in ('dir /s /b *.jpg') do (
  10.         set "pre=%%~pa"
  11.         ren "%%a" "!pre:\=丨!▼%%~nxa"
  12. )
  13. :end
  14. echo 执行完毕!!!
  15. pause>nul
复制代码
发表于 2016-3-9 20:30:38 | 显示全部楼层
回复 10# happy886rr


@echo off
运行错误?这是怎么回事?
xp和win7 64系统下,都这样。

评分

参与人数 1PB -4 收起 理由
pcl_test -4 直接点相应楼层的回复,少引用

查看全部评分

发表于 2016-3-9 20:37:30 | 显示全部楼层
本帖最后由 happy886rr 于 2016-3-9 20:39 编辑

回复 11# ygqiang
看看是不是ansi格式。一定要ansi格式保存。
不是在cmd下运行。找个记事本,把代码贴进去。命名为 改名.bat,就改名了。
还原时命名为 还原.bat就还原了。
发表于 2016-3-9 20:55:57 | 显示全部楼层
回复 11# happy886rr


   
多谢。解决了。

原来是utf8
新建文本文档,复制代码进去,保存为bat。选择ansi。。。
发表于 2016-3-10 08:25:02 | 显示全部楼层
回复 2# ivor

你把钱收过来再捐。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 04:49 , Processed in 0.031847 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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