![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 06:01 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 这段代码能不能精简一下 |
| 可打印版本 1,574 / 17 |
| 第1楼 meiyongderen | 发表于 2008-04-20 17:14 |
| 初级用户 发帖 28 积分 72 | |
|
这段代码能不能精简一下 @echo off
for %%i in ( e ) do ( if exist %%i:\FIM\*.nc set drive=%%i&goto another ) goto :eof :another ren E:\FIM\a*.NC A-.nc ren E:\FIM\b*.NC B-.nc ren E:\FIM\c*.NC C-.nc ren E:\FIM\d*.NC D-.nc ren E:\FIM\e*.NC E-.nc ren E:\FIM\f*.NC F-.nc ren E:\FIM\g*.NC G-.nc ren E:\FIM\h*.NC H-.nc ren E:\FIM\i*.NC I-.nc ren E:\FIM\j*.NC J-.nc ren E:\FIM\k*.NC K-.nc ren E:\FIM\l*.NC L-.nc ren E:\FIM\m*.NC M-.nc ren E:\FIM\n*.NC N-.nc ren E:\FIM\o*.NC O-.nc ren E:\FIM\p*.NC P-.nc ren E:\FIM\q*.NC Q-.nc ren E:\FIM\r*.NC R-.nc ren E:\FIM\t*.NC T-.nc ren E:\FIM\u*.NC U-.nc ren E:\FIM\v*.NC V-.nc ren E:\FIM\w*.NC W-.nc ren E:\FIM\x*.NC X-.nc ren E:\FIM\y*.NC Y-.nc ren E:\FIM\z*.NC Z-.nc ren E:\FIM\1*.NC 1-.nc ren E:\FIM\2*.NC 2-.nc ren E:\FIM\3*.NC 3-.nc ren E:\FIM\4*.NC 4-.nc ren E:\FIM\5*.NC 5-.nc ren E:\FIM\6*.NC 6-.nc ren E:\FIM\7*.NC 7-.nc ren E:\FIM\8*.NC 8-.nc ren E:\FIM\9*.NC 9-.nc ren E:\FIM\0*.NC 0-.nc |
|
| 第2楼 plp626 | 发表于 2008-04-20 17:23 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
可以精简,但是ren E:\FIM\a*.NC A-.nc
这些命令不对吧, 所有的a*.NC 都命名为一个A-.nc? |
|
| 第3楼 meiyongderen | 发表于 2008-04-20 17:27 |
| 初级用户 发帖 28 积分 72 | |
|
是的
|
|
| 第4楼 plp626 | 发表于 2008-04-20 17:31 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
那是不可能的,会保存已经存在一个同名文件
除非你那里只要一个那样的文件 |
|
| 第5楼 meiyongderen | 发表于 2008-04-20 17:34 |
| 初级用户 发帖 28 积分 72 | |
|
能不能用累加的方法,...比如A-1 A-2
|
|
| 第6楼 meiyongderen | 发表于 2008-04-20 17:36 |
| 初级用户 发帖 28 积分 72 | |
|
@echo off
set num=0 for /f "delims=" %%i in ('dir /a-d /b e:\FIM\*.nc') do ( if not exist "e:\yiming\%%i" ( copy "e:\FIM\%%i" e:\yiming>nul ) else call :copy_nc "e:\FIM\%%i" "%%~ni" %%~xi ) :copy_NC set file_n=%2 set "file_n=%file_n:~1,-1%" set file_x=%3 set /a num+=1 if not exist "e:\yiming\%file_n%%num%%file_x%" ( copy %1 "e:\yiming\%file_n%%num%%file_x%">nul ) else call :copy_nc %1 "%file_n%" %file_x% set num=0 这个代码正好可以累加了,...呵呵,..能不能整体精简一下 |
|
| 第7楼 plp626 | 发表于 2008-04-20 17:50 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
--------------a.txt
a A b B c C ... -------------- cd E:\FIM\ for /f "tokens=1-2" %%i in (a.txt)do for %%a in (%%i*.nc)do call:ren "%%a" %%j pause&exit :ren ren "%~1" %2_%n%.nc||goto:ren1 goto:eof :ren1 set/a n=1 :ren2 if exist %2_%n%.nc set/a n+=1&goto:ren2 goto:ren [ Last edited by plp626 on 2008-4-20 at 05:54 PM ] |
|
| 第8楼 meiyongderen | 发表于 2008-04-20 17:54 |
| 初级用户 发帖 28 积分 72 | |
|
怎么用,..我是很菜很菜的鸟,....能把2段代码加在一起发上来吗
|
|
| 第9楼 plp626 | 发表于 2008-04-20 17:57 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
我的代码只当你E:\FIM\目录下有大量的a*.NC ,b*.NC....
也没法测试, |
|
| 第10楼 meiyongderen | 发表于 2008-04-20 18:00 |
| 初级用户 发帖 28 积分 72 | |
|
改不了文件名
|
|
| 第11楼 plp626 | 发表于 2008-04-20 18:05 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
你得手动先写个a.txt里面的内容为:
|
|
| 第12楼 meiyongderen | 发表于 2008-04-20 18:06 |
| 初级用户 发帖 28 积分 72 | |
|
写了,.但就是改不了名字,...能不能把上面那些代码加一起发给我
|
|
| 第13楼 plp626 | 发表于 2008-04-20 18:12 |
| 银牌会员 发帖 1,020 积分 2,278 | |
| 第14楼 meiyongderen | 发表于 2008-04-20 18:29 |
| 初级用户 发帖 28 积分 72 | |
|
可以改了,...呵呵,.. 但是你改成了A_ 而不是 A- 能不能再修改一下??
|
|
| 第15楼 plp626 | 发表于 2008-04-20 18:36 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
把_换成-
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |