
标题: [文件操作] 批处理实现文件名的改名练习 这个好像出有人出过出题挑战的 [打印本页]
作者: netdzb 时间: 2021-2-9 12:30 标题: 批处理实现文件名的改名练习 这个好像出有人出过出题挑战的
希望得到这样的结果
段品章 - 云深情也深.mp3 ---> 云深情也深 - 段品章.mp3
成方圆 - 该怎样就怎样 ---> 该怎样就怎样 - 成方圆
罗可珺 - 今夜雨濛濛.mp3 ---> 今夜雨濛濛 - 罗可珺.mp3
谁在贴一下,也算是复习一下了。- @echo off
- setlocal EnableDelayedExpansion
- for /f "delims=" %%i in ('dir /b/on "*.ape"') do (
- for /f "delims=- tokens=1,2" %%a in ("%%~ni") do (
- REM echo "%%i"
- set aa=%%a:~0,1%
- set bb=%%b:~0,1%
- echo "%%aa"
- echo "%%bb"
- )
- )
- pause
复制代码
我调试运行的结果是 a参数是, 段品章(1空格), b参数是 (1空格)云深情也深,
今天自己尝试写代码,这里截断的地方不会写了,谁能帮忙贴一下,谢谢!
作者: netdzb 时间: 2021-2-9 13:30
回复 1# netdzb
自己给解决了,正确的代码应该是这样的。
@echo on
setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('dir /b/on "*.ape"') do (
for /f "delims=- tokens=1,2" %%a in ("%%~ni") do (
set str1=%%b
set str2=%%a
ren "%%i" ""!str1:~1!" - "!str2:~,-1!""%%~xi
)
)
pause
作者: qixiaobin0715 时间: 2021-2-9 14:54
mp3咋成了ape了:- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1* delims=-" %%a in ('dir /b /a-d *.mp3') do (
- set str1=%%a
- set str2=%%~nb
- ren "%%a-%%b" "!str2:~1! - !str1:~0,-1!.mp3"
- )
- pause
复制代码
作者: netdzb 时间: 2021-2-9 15:59
回复 3# qixiaobin0715
同一个意思,我在ape文件夹做测试。
作者: smss 时间: 2021-2-10 10:25
- @echo off&SetLocal EnableDelayedExpansion
- for /f "delims=" %%i in ('dir /b/s/a-d ^|find "-"') do for /f "tokens=1,* delims=-" %%a in ("%%~ni") do set "L=%%a"&set "R=%%b"&set L=!L: =!&set R=!R: =!&if not "%%i"==%0 ren "%%i" "!R!-!L!%%~xi"&Echo 重命名"%%i"为"!R!-!L!%%~xi"
- pause
复制代码
作者: 朱科技 时间: 2021-2-10 11:11
感觉这像我妈妈的广场舞,考到U盘在整理下歌曲顺序,方便我妈妈跳广场舞
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |