. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』 » 专题:命令正则

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 回复
 
主题工具
sunboy
 
sunboy 的头像
热心会员
 
资 料:
注册日期: Jun 2001
帖子: 2,762 声望值: 4
精华: 2,解答: 21
#1 旧 2019-06-30, 12:43:03 默认 已解答: 【求助】哪位高手有空写个简单的批处理重命名?
sunboy 当前离线  

代码:
SRTMv3_1_N31E119.prj
SRTMv3_1_N31E119_DEM.shp
SRTMv3_1_N31E120.prj
SRTMv3_1_N31E120_DEM.shp
prj文件内容和shp是配套的,但是原来的prj有用,需要复制成SRTMv3_1_N31E119_DEM.prj、SRTMv3_1_N31E120_DEM.prj。
简单复制后,用那些常用的更名软件很容易搞定。但是文件太多,几十到几百都有,要求不高,批处理应该更方便。网上搜了半天,实在搞不定,求助万能的CCF,谢谢!
回复时引用此帖
最佳解答为:namejm
试试这个代码:
代码:
@echo off
setlocal enabledelayedexpansion
for %%i in (*.prj) do (
  if not exist "%%~ni_DEM.prj" (
    set "fname=%%i" 
    if /i not "!fname:~-8,4!"=="_DEM" (
      copy "%%i" "%%~ni_DEM.prj"
    )
  )
)
pause
sunboy
 
sunboy 的头像
热心会员
 
资 料:
注册日期: Jun 2001
帖子: 2,762 声望值: 4
精华: 2,解答: 21
#2 旧 2019-06-30, 13:22:31 默认
sunboy 当前离线  

笨办法,自己解决。还是希望有高手写个规范好看的命令行。
代码:
copy ????????????????.prj ????????????????_DEM.prr
ren *.prr *.prj
回复时引用此帖
canonind
 
canonind 的头像
高级会员
 
资 料:
注册日期: Jul 2013
帖子: 555 声望值: 1
精华: 0,解答: 5
#3 旧 2019-06-30, 18:36:14 默认
canonind 当前离线  

没有软件,就用excel编个bat出来...
回复时引用此帖
yyy
 
yyy 的头像
核心会员
 
资 料:
注册日期: Mar 2002
帖子: 2,964 声望值: 3
精华: 1,解答: 3
#4 旧 2019-06-30, 19:50:18 默认
yyy 当前离线  

用TC试试,很好用的

发自 iPhone 8 使用 CCF客户端


beckyuser.free.fr=beckyuser forum
回复时引用此帖
hnlyzhd
 
hnlyzhd 的头像
热心会员
 
资 料:
注册日期: Dec 2006
帖子: 6,064 声望值: 4
精华: 5,解答: 93
#5 旧 2019-06-30, 20:13:23 默认
hnlyzhd 当前离线  

for %I in (*.prj) do copy /y %I %~nI_DEM.prj
回复时引用此帖
sunboy
 
sunboy 的头像
热心会员
 
资 料:
注册日期: Jun 2001
帖子: 2,762 声望值: 4
精华: 2,解答: 21
#6 旧 2019-06-30, 21:09:21 默认
sunboy 当前离线  

引用:
作者: yyy 查看帖子
用TC试试,很好用的
谢谢,用那些更名软件很容易,就是文件比较多,有点懒,觉得命令行更爽。

引用:
作者: hnlyzhd 查看帖子
for %I in (*.prj) do copy /y %I %~nI_DEM.prj
这个似乎有错误。:blush;
回复时引用此帖
namejm
 
namejm 的头像
超级会员
 
资 料:
注册日期: Apr 2009
帖子: 1,306 声望值: 3
精华: 18,解答: 81
#7 旧 2019-07-01, 00:17:37 默认
namejm 当前离线  

试试这个代码:
代码:
@echo off
setlocal enabledelayedexpansion
for %%i in (*.prj) do (
  if not exist "%%~ni_DEM.prj" (
    set "fname=%%i" 
    if /i not "!fname:~-8,4!"=="_DEM" (
      copy "%%i" "%%~ni_DEM.prj"
    )
  )
)
pause


TotalCommder、EveryThing、batch、AutoHotKey、EverEdit
精通Word、Excel、PPT的安装与卸载
熟练掌握VB、C++、SQL的缩写
回复时引用此帖
sunboy
 
sunboy 的头像
热心会员
 
资 料:
注册日期: Jun 2001
帖子: 2,762 声望值: 4
精华: 2,解答: 21
#8 旧 2019-07-01, 21:17:24 默认
sunboy 当前离线  

引用:
作者: namejm 查看帖子
试试这个代码:[code] echo offsetlocal enabledelayedexpansionfor %%i in (*.prj) do ( if not exist "%%~ni_DEM.prj" ( set "fname=%%i" if /i no......
这个好用,感谢!
回复时引用此帖
发表新主题 回复

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 19:21:30.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号