Board logo

标题: [求助]怎么在这段代码中加入删除文件名[已解决] [打印本页]

作者: meiyongderen     时间: 2008-4-20 22:48    标题: [求助]怎么在这段代码中加入删除文件名[已解决]

移动文件名是这样的   123-PROFILE1.nc     我要在下面这段代码中加入删除-这个符号以后不管多少字的代码,.如果文件名是123_PROFILE1.nc 就把_这个符号也改成-    扩展名不动

@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文件下并改名,.,上面那段代码是遇到同名的会自动累加的