Board logo

标题: [文本处理] 批处理如何获取当前目录下所有文件的文件名并重新生成指定类型/扩展名/后缀的同名文件 [打印本页]

作者: yuanqiyi    时间: 2009-2-27 14:00     标题: 批处理如何获取当前目录下所有文件的文件名并重新生成指定类型/扩展名/后缀的同名文件

本帖最后由 pcl_test 于 2016-7-15 13:00 编辑
@echo off
set n=10000
for /l %%a in (1,1,12) do (
setlocal enabledelayedexpansion
set /a n+=%%a
echo !n:~-2!>!n:~-2!.mpg
endlocal
)
(谁还能帮我分析一下这段代码的意思!~~谢谢~)
以上是按顺序的情况来说是1-99都是.MPG文件。。



但我现在手头有大量的无规则的文件但是需要用批处理把他们都创建出来,处理出来的文件要和原文件一样,其中内容可以不写。




1.如何获取某个文件的文件名
2.如何根据获取到的大量文件名来生成新的文件
3.如何对前面两步进行批量操作

[ 本帖最后由 yuanqiyi 于 2009-2-27 21:15 编辑 ]
作者: Batcher    时间: 2009-2-27 14:21

本版规则
1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块,其余话题禁止在本版讨论;
2、求助时,务必在顶楼一次性把问题交代清楚;若文字难以表述,请配图说明,或是上传附件;但是,一切操作应从节约论坛资源的角度出发,能文字说明清楚的就无需再发图片,小图能说明问题的尽量不截全图,在不影响效果的前提下尽量压缩图片及附件;
3、所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;

作者: yuanqiyi    时间: 2009-2-27 14:40

这样行了吧

~~呃呃
作者: cjiabing    时间: 2009-2-27 16:57

用随机数呗,随机产生
作者: batman    时间: 2009-2-27 17:01

建议楼主先把提问的语句理顺了,我实在是看不懂你要做什么(实在是尽语病)!
作者: yuanqiyi    时间: 2009-2-27 17:11

理顺了吧。。应该看的懂了吧。。- -
作者: Batcher    时间: 2009-2-27 17:37

你的问题大致可以分解成以下几个小模块:
1、如何获取某个文件的文件名
2、如何根据获取到的文件名来生成新的文件
3、如何对前面两步进行批量操作
请问具体哪个模块你不会?或者全部不会,只能等待别人给出完整代码?
发帖求助时,建议在帖子中描述清楚以下几点(有则改之无则加勉):

1、你的具体系统环境、应用程序环境是什么?你需要处理的数据长啥模样?

2、你为了解决自己的问题做出了哪些尝试?在google/baidu搜索了没?在本论坛搜索了没?阅读批处理基础教程了没?查阅系统自带的命令行帮助了没?

3、如果你曾经自己尝试着写过代码,但没能解决问题,请把你的完整代码贴出来,也许别人能够给你指出是什么地方出了问题,这样才更加有利于自己的进步。

作者: yuanqiyi    时间: 2009-2-27 17:48

原帖由 Batcher 于 2009-2-27 17:37 发表
你的问题大致可以分解成以下几个小模块:
1、如何获取某个文件的文件名
2、如何根据获取到的文件名来生成新的文件
3、如何对前面两步进行批量操作
请问具体哪个模块你不会?或者全部不会,只能等待别人给出完整代 ...




楼上正解阿。。。我基本算是不会。。但要的比较急一点。。希望有人能帮我么
作者: yuanqiyi    时间: 2009-2-27 19:20

-.-米有人。。来帮帮我么。。
作者: batman    时间: 2009-2-27 19:44

我到现在还没搞明白你第二问的意思,如果你用文字描述不出来,就请举个实例来说明下,不然别人是没办法帮你的。。。
作者: yuanqiyi    时间: 2009-2-27 19:53

意思就是在我有大量无规则的数字文件名的情况下。。用批处理来生成大量的文件。其中文件不需要内容。

[ 本帖最后由 yuanqiyi 于 2009-2-27 20:21 编辑 ]
作者: batman    时间: 2009-2-27 20:11

无奈,还是猜的:
假如楼主有个a.txt,内容如下
  1. 375
  2. 899
  3. 404
  4. 206
  5. 358
  6. 774
  7. 210
  8. 934
  9. 329
  10. 514
  11. 961
  12. 674
  13. 797
  14. 58
复制代码
  1. @echo off&for /f %%a in (a.txt) do echo.>%%a.txt
复制代码
不知道是不是这个意思?
作者: Batcher    时间: 2009-2-27 20:12     标题: 回复 11楼 的帖子

你的自己回帖中的所有感叹号全部删除,我帮你写。
作者: yuanqiyi    时间: 2009-2-27 20:26

原帖由 batman 于 2009-2-27 20:11 发表
无奈,还是猜的:
假如楼主有个a.txt,内容如下375
899
404
206
358
774
210
934
329
514
961
674
797
58@echo off&for /f %%a in (a.txt) do echo.>%%a.txt不知道是不是这个意思?




比如:我有7首MP3的歌名字为
2.mp3
9.mp3
8.mp3
7.mp3
4.mp3
6.mp3
3.mp3
..........以上容量大概都在3M左右
==================================
我现在就是想要用批处理生成出来这样的文件:
2.mp3
9.mp3
8.mp3
7.mp3
4.mp3
6.mp3
3.mp3
这上面7个文件。。容量是1KB。。但都和最上面的7个文件是一样的
这样说可以理解吧?
作者: yuanqiyi    时间: 2009-2-27 20:27

原帖由 Batcher 于 2009-2-27 20:12 发表
你的自己回帖中的所有感叹号全部删除,我帮你写。

- -。。。感叹号都删了。。 - -。。
作者: batman    时间: 2009-2-27 20:34

楼主你自己看看吧,从上到下14层就为了说明题意,这难道不是巨大的浪费?
不过至今你的条件仍是没有给足,只好再假设。。。。
假设楼主d:\test下有若干文件,现在通过批处理全生成同名的空文件到e:\temp下:
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b d:\test') do echo.>e:\temp\%%~nxi
复制代码

[ 本帖最后由 batman 于 2009-2-27 20:35 编辑 ]
作者: yuanqiyi    时间: 2009-2-27 20:41

原帖由 batman 于 2009-2-27 20:34 发表
楼主你自己看看吧,从上到下14层就为了说明题意,这难道不是巨大的浪费?
不过至今你的条件仍是没有给足,只好再假设。。。。
假设楼主d:\test下有若干文件,现在通过批处理全生成同名的空文件到e:\temp下echo o ...




差不多就是这意思了。。
就是我那有个文件夹里面有1W多首MTV的歌。。我有个老大出了个题目。。叫我用批处理把1W多首歌生成同名的空文件或1KB文件到另一个文件夹里
作者: batman    时间: 2009-2-27 20:48

一、你老大?
二、如果这样问题得到了解决我就真的郁闷:一个这么简单的问题耗费了论坛如此大的资源(问题就在你的描述上)
三、请楼主在贴子标题前加【已结】

[ 本帖最后由 batman 于 2009-2-27 20:50 编辑 ]
作者: yuanqiyi    时间: 2009-2-27 20:49

一我老大就是我顶头上司。。我也无语中。。。
二我语言水平有问题拉。。。
三似乎还没解决。 。。。
作者: batman    时间: 2009-2-27 20:51

没解决,你的要求还没说全啊,晕....
作者: yuanqiyi    时间: 2009-2-27 20:52

大家抱歉了。。终于搞定了。。- -
作者: yuanqiyi    时间: 2009-2-27 20:53

- -超版大哥。。。。刚刚我打错一个字母所以我以为没解决。。。- -现在我改回来了就解决了。。太感谢你了。。。衷心的感谢~~
作者: yuanqiyi    时间: 2009-2-27 21:10

超版大哥。。。不对了。。名字不对。。。名字一定要一模一样。。
作者: Batcher    时间: 2009-2-27 21:11     标题: 回复 23楼 的帖子

因为没加双引号
作者: yuanqiyi    时间: 2009-2-27 21:14

被我老大。。再次误倒。。。我要喷血了。。。其实超版大哥是对的。。
作者: Batcher    时间: 2009-2-27 21:32     标题: 回复 25楼 的帖子

找个带空格的文件试试?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2