2010-09-15 106 views
0

我有一个名为named.txt的txt文件有没有办法创建一个批处理文件,从name.txt中读取每行的每个字母2到7个字母,然后忽略其余的字符并将其输出到名为name2的不同txt文件中。文本。比如我有这样的txt文件:批文件从文本文件中读取特定的字母?

G2010060sample.png
G2010061sample.png
G2010062sample.png
G2010063sample.png

和批处理文件将创建这样一个新的txt文件:

2010060.png
2010061.png
2010062.png
2010063.png

+1

是什么操作系统您使用卓越网上的ressource? Windows,类Unix? – 2010-09-15 19:09:42

+0

我正在使用Windows 7 – steven 2010-09-15 19:12:31

回答

0

http://ss64.com/nt/syntax.html

@echo off 
if exist output.txt del output.txt 
for /f "delims=" %%i in (input.txt) do call :ParseLine %%i 
goto :eof 


:ParseLine 
set line=%1 
set line=%line:~1,7% 
echo %line%.png>> output.txt 
goto :eof 
+0

非常感谢你!工作很好,但有一个问题。当我再次运行时,它会重复所有的名字。有没有办法停止重复名称。它显示2010060.png 2010061.png 2010062.png 2010063.png2010060.png 2010061.png 2010062.png 2010063.png – steven 2010-09-16 20:11:58

+0

我不太让你通过重复的名字是什么意思。这个非常简单的批处理需要你的input.txt并生成一个output.txt文件...如果这些名字在input.txt中重复出现,这是一个耻辱。您可能想要在使用for/f中的input.txt之前自动创建input.txt,如下所示:dir/b G * .png> input.txt。 – 2010-09-22 00:43:11

0
cut -b 2-7,15-18 <infile.txt> outfile.txt 
+0

只有当文件名全部为14个字符时,15-18部分才能保证获得扩展名。 – Instantsoup 2010-09-15 19:13:22

+0

除非您使用cygwin或类似软件安装,否则Plus切不可用于Windows。 – 2010-09-15 19:46:51