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

[文件操作] 批处理怎样批量在指定文件夹内添加前缀到全文件(代码修改)?

  1. set Choice=
  2. echo         请将要加前缀文件夹直接拖入本窗口:
  3. echo.
  4. set /p Choice=
  5. if ""%Choice%"" == "" goto 2
  6. set/p k=要添加的前缀为:
  7. if "%k%" == "ml" (goto ml)
  8. for /f "delims=" %%i in ('dir /s /b "%choice%"') do ren %%i  %k%%%i
复制代码
上面是代码的一部分,可以运行但文件夹内的文件名并没有改变...
还应该做什么修改吗?

  1. @echo off&SetLocal EnableDelayedExpansion
  2. Set /p str=请输入要添加的前缀:
  3. for /r %%i in (*.*) do ren "%%i" "%str%%%~nxi"
  4. pause>nul
复制代码

TOP

回复 2# Hello123World

Hello123World  你这个可以,但我在试的时候把全部文件名改了,想要去掉那个前缀怎么搞啊

TOP

回复 3# zaixinxiangnian
看你的问题真让人无语,
没点自学能力,没点吃苦精神就不要学bat.
“阿姐走了。。。可是。。。我。。。我愿意。”

TOP

回复 3# zaixinxiangnian


    我给你点提示,用set 来替换。(以后做实验不要用有用的文件做,创建些文件没用的文件……)

TOP

回复 5# Hello123World


    谢谢你的提醒,我已经想到用SET截取了

不过还有两个疑问
1.for /r 也可用delims  token  这些/F中的参数吗?
2.加了环境变量延迟。为什么后面的(%STR%)不用双感叹号括起来啊?

TOP

回复 2# Hello123World
  1. @echo off&SetLocal EnableDelayedExpansion
  2. set Choice=
  3. echo 请将要加前缀文件夹直接拖入本窗口,然后回车:
  4. echo.
  5. set /p Choice=
  6. Set /p str=请输入要添加的前缀:
  7. for /r %%i in (*.*) do ren "%%i" "%str%%%~nxi"
  8. pause>nul
复制代码
我将代码改成了上面的样子,但它不能处理别的文件夹(其他分区)的文件,该怎么改呢?

TOP

回复 3# zaixinxiangnian
  1. for /f "delims=" %%1 in ('dir /s /a /b') do (set wind=%%~nx1
  2. ren "%%~1" "!wind:你的前缀=!")
复制代码
这个也可以吧~~

TOP

回复 7# comicguests
请问楼主你的Choice变量是设置来做什么用的,后面居然可以不用到
一路飘过的鸟~~~

TOP

回复 9# ArdentMan

???
那个不就是弹出批处理窗口后,需要你将要处理的文件夹拖入的意思吗?

TOP

回复 8# comicguests


    你这个试了不行啊

TOP

回复 5# Hello123World


    小弟不才,,,,,写了好久也没有成功,,,写到这里下面怎么试都不行,,,,请指教
  1. @echo off&SetLocal EnableDelayedExpansion
  2. for /r %%i in (*.*) do set val=%%~nxi&echo !val!
  3. pause>nul
复制代码

TOP

回复 2# Hello123World

Hello123World  看到了再帮忙写下吧,,,批量把前缀去掉,真的想了也写了试了都没有成功?

TOP

回复 13# zaixinxiangnian
  1. @echo off&SetLocal EnableDelayedExpansion
  2. Set /p str=请输入要去除的前缀:
  3. for /r %%i in (*.*) do (
  4. Set nstr="%%~ni"
  5. Set nstr=!nstr:%str%=!
  6. ren "%%i" "!nstr!%%~xi"
  7. )
  8. pause>nul
复制代码
还是先学点基础知识吧,水到渠成!

TOP

回复 14# Hello123World


    谢谢,谨听你的建议(为这个问题卡住了 试了好久都不行。是FOR的嵌套还不会用吧?)

你那个好像 文件名有空格的就不能处理了

TOP

返回列表