Board logo

标题: [已解决]提取文件名的一部分作为新的文件名 [打印本页]

作者: skypig     时间: 2008-12-19 18:01    标题: [已解决]提取文件名的一部分作为新的文件名

上午下了一堆补丁,文件名类似于这样:



我想把这些补丁重新命名成 KBxxxxxx.exe 的形式,(尝试了一中午,没有成功)

:( 只好请教大家了

[ Last edited by skypig on 2008-12-19 at 19:48 ]
作者: moniuming     时间: 2008-12-19 19:07
以"-"为分隔符,取第二列...
"tokens=2 delims=-"
作者: skypig     时间: 2008-12-19 19:20

  for /f "tokens=2 delims=-" %%i in ('dir /on /b *.exe') do (*******)
如果do里面做echo的话,确实可以得到一个列表,

如果想重名名似乎还得再循环一次,我有点晕了...

楼上的朋友能给一段代码吗,谢谢你
作者: moniuming     时间: 2008-12-19 19:38
应该要用到两层for吧,试试?放在要更名的目录里运行,如果显示是要的结果,请把echo去掉以实现更名的操作.
@echo off
for %%a in (*.exe) do (
   set "name=%%~na"
   setlocal enabledelayedexpansion
   for /f "tokens=2 delims=-" %%b in ("!name!") do (
      echo ren "%%a" "%%b%%~xa"
   )
   endlocal
)
echo.&pause

作者: skypig     时间: 2008-12-19 19:47
楼上的兄弟,你的代码非常好用,谢谢你,
这远比我想象的要复杂

我收藏学习了...