Board logo

标题: 求助:一新建文件夹的P处理 [打印本页]

作者: Mnyoll     时间: 2008-3-27 00:47    标题: 求助:一新建文件夹的P处理

在一个文件夹里新建一个文件夹
名字是根据这个文件夹里的文件来起名的
然后再把对应的文件移到这个文件夹里
比如C盘里有“123.txt”文件
那么这个P处理就要在C盘里新建一个名为“123”的文件夹
如果有两个文件"123.txt" "456.txt"
那么就建两个文件夹,分别命名为"123" "456"
再把“123.txt”移到名为“123”的文件夹里
最后就是要把123.txt改名成abc.txt
高手帮帮忙
作者: abcd     时间: 2008-3-27 01:42

@echo off
for /f "delims=" %%i in ('dir /a-d/b *.*') do (
   md "%%~ni"&&move "%%i" "%%~ni\"
)

作者: Mnyoll     时间: 2008-3-27 02:12
E:\>@echo off
for /f "delims=" %%i in ('dir /a-d/b *.*') do (
此时不应有 %%i。
   md "%%~ni"&&move "%%i" "%%~ni\"
系统找不到指定的文件。
)
作者: Mnyoll     时间: 2008-3-27 02:12
不行啊
作者: Mnyoll     时间: 2008-3-27 02:33
行了
原来是不可以在CMD环境下运行
要在BAT环境下运行才可以
谢谢了
最后就是要改文件名
不懂得怎么改
可以帮帮么
作者: abcd     时间: 2008-3-27 02:42
改文件名 有什么规律?
作者: Mnyoll     时间: 2008-3-28 00:18
改文件名已经好了
就是要改成固定的"abc"名字
就在md "%%~ni"&&move "%%i" "%%~ni\"后面加上abc.txt就可以了
变成md "%%~ni"&&move "%%i" "%%~ni\abc.txt"
呵呵
现在我还想写一个
就是如何才能批量的改文件名
要求保留文件名里的数字部分,去掉汉字和字母部分
还要要求这个文件名是三个数字组成的
比如说一个文件夹里有上百集电影文件
分别是"火影第1集.rm"
"火影第2集.rm"
"火影第3集.rm"
"火影第4集.rm"
"火影第5集.rm"
"火影第6集.rm".....
"火影第51集.rm"
"火影第52集.rmvb"
"火影第53集.rmvb"
"火影第54集.avi"....
"火影第159集.rm"
"火影第160集.rmvb"
"火影第161集.avi"
"火影第162集.rm"....
运行这个P处理可以让文件名变成"001.rm"
"002.rm"....
"051.rm"
"052.rmvb"....
"161.avi"....
如果文件不到100
则文件名就是两位数
变成"01.rm"
"02.rm"....
"18.rm"
"19.rm"....
各位老大,这该怎么写????
路径是在E:\电影\火影\
作者: abcd     时间: 2008-3-28 00:44

@echo off
::setlocal enabledelayedexpansion
set ph=E:\电影\火影
set num=0
for /r %ph% %%i in (*) do set /a num+=1
if %num% geq 100 (set js=3) else (set js=2)
for /f "tokens=*" %%i in ('dir /b "%ph%\*.*"') do (
  set "str=%%~ni"
  call,set "str=%%str:*第=%%"
  call,set "str=%%str:集=%%"
  call,set "str=00%%str%%"
  call,echo %%str:~-%js%%%%%~xi
)
pause>nul
未测试
作者: abcd     时间: 2008-3-28 00:47
用的是echo,没有用ren
作者: Mnyoll     时间: 2008-3-28 01:31
好像不行啊
运行了以后就是出现了黑框
显示从001-.....的文件名
也没退出
出没改名
我把echo改成ren
就出现了M个"语法不正确"
作者: abcd     时间: 2008-3-28 01:41
难道非得完完整整的写给楼主吗?

俺写的只是显示而已,本来就没改名的

自己查看ren命令的用法吧
作者: Mnyoll     时间: 2008-3-28 02:27
您那个语法批处理可以显示变量后的文件名
可小弟就是笨
不懂得怎么运用
要加什么上去才可以达到改名的目的??
call,echo %%str:~-%js%%%%%~xi
我把这条改成
ren %%str:~-%js%%%%%~xi
就成了"命令语法不正确"
作者: abcd     时间: 2008-3-28 02:49
call,ren "%ph%\%%i" "%%str:~-%js%%%%%~xi"

[ Last edited by abcd on 2008-3-29 at 04:35 AM ]
作者: Mnyoll     时间: 2008-3-29 00:18
不行啊
出现了N个"系统找不到文件"的提示
我想可以是CMD被变量了
call,ren "%%i" "%%str:~-%js%%%%%~xi"
我把"%%i"改成"str=%%~ni"不行
改成"%ph%\*.*"也不行
老是找不到文件
作者: abcd     时间: 2008-3-29 04:38
不好意思,忘记加路径了
作者: Mnyoll     时间: 2008-3-30 01:03
成功了
谢谢