批处理(调试正确追加100分) 求大神帮忙改这段给文件名加前缀的代码,让他实现问题补充中的功能.

批处理(调试正确追加100分) 求大神帮忙改这段给文件名加前缀的代码,让他实现问题补充中的功能.
代码实现判断原文件名中是否含有要加的前缀字样,如果没有则加,如果有一个这样的字样则不加,如果有两个或两个以上的这样的字样则只留下一个.就是不管文件名中有多少或有没有我要加的前缀,让他最后的结果就是文件名中只有这样的一个前缀.
以下是代码
@echo off
for /f "delims=" %%i in ('dir /a-d/b/s *.*') do (if not "%%i"==%0 ren "%%i" "s-%%~nxi")
echo 命名完毕pause
Sunnyldy 1年前 已收到1个回答 举报

临风击水 春芽

共回答了19个问题采纳率:94.7% 举报

@echo offsetlocal enabledelayedexpansionfor /f "delims=" %%a in ('dir /a-d/b') do (if not "%%~nxa"=="%~nx0" (set str=%%aset str=!str:前缀=!ren "%%a" "前缀!str!"))echo end...pause问题描述的不是很清,不...

1年前 追问

3

Sunnyldy 举报

我需要这个,但一开始调试的时候你的前缀成了乱码,是我系统的问题? 另外,如果把文件夹下的子文件也这么做的话该怎么改? 再写一个,这个写成再给您加分,把文件夹下的文件名做成world格式的目录,目录按问件类型分列(比如.doc放一起,.jpg放一起。。。)。

举报 临风击水

1这边测试正确,如果不是系统差异(win7).应该是百度的格式问题,我出现过。。。 2.简答。 3.就是,每种文件放在一个文件夹里对吗?

Sunnyldy 举报

不是移动文件,是建立文件目录,然后目录里把Word,Excel,JPG等文件区分开

举报 临风击水

第一个,乱码是百度的问题,你把ABC改成你要的前缀即可。 @echo off setlocal enabledelayedexpansion for /f "delims=" %%a in ('dir /a-d/b/s') do ( if not "%%~nxa"=="%~nx0" ( set "str=%%~nxa" set "str=abc!str:abc=!" ren "%%a" "!str!" ) ) echo end... pause 第二个还是不太明白你的意思,不知道理解的对不,所以没有用移动,用复制的,不对你HI我。 @echo off setlocal enabledelayedexpansion for /f "delims=" %%b in ('dir /a-d/b/s') do ( if not "%%~nxb"=="%~nx0" ( set str=%%~xb set str=!str:.=! md !str! copy /y %%~fsb !str! ) )>nul 2>nul echo end... pause
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.032 s. - webmaster@yulucn.com