@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
[ Last edited by meiyongderen on 2008-4-22 at 01:43 AM ]作者: plp626 时间: 2008-4-20 23:05 dos学了一个小时能达到如此境界的必是人-----精。^_^作者: slore 时间: 2008-4-20 23:15 用-分割的方式不行麽?作者: meiyongderen 时间: 2008-4-20 23:24 其实这段代码是抄来的,.学一个小时有那么精就好了,.呵呵,..作者: meiyongderen 时间: 2008-4-21 11:18 求各位大哥大姐帮帮忙写一下,.....作者: bat-zw 时间: 2008-4-21 11:25 请描述清楚点,说实话不是不帮你,我看你的问题看得一头雾水,不知道楼主要达到什么效果?作者: meiyongderen 时间: 2008-4-21 15:14 比如文件名是这样的 123-PROFILE1.nc 5678-PROFILE1.nc 我要删除-这个符号以后不管多少字的代码,. -前面的不动,..如果文件名是123_PROFILE1.nc 就把_这个符号也改成- 扩展名不动作者: abcd 时间: 2008-4-21 16:18 123_PROFILE1.nc改成-后,也需要舍去-后面的吗?作者: meiyongderen 时间: 2008-4-21 17:40 是的,.......就是这个意思,..就是 --后面的字都删除,不要删除扩展名就行作者: meiyongderen 时间: 2008-4-21 19:56 有人帮个忙吗作者: terse 时间: 2008-4-21 20:21 这样处理不一样吗
@echo off
for /f "delims=-_" %%i in ('dir /b *.nc') do echo %%i-.nc
pause作者: meiyongderen 时间: 2008-4-21 23:11 谢谢terse大哥帮我解答,..可能理解错了我的意思,..文件还没没有改名,...
就是从FIN文件移动到YIMING文件下并改名,.,上面那段代码是遇到同名的会自动累加的