Windows 7 从文本文件中读取特定字母的批处理文件?
我有一个名为named.txt的txt文件。有没有办法创建一个批处理文件,从name.txt的每一行读取每一个字母2到7个字母,忽略其余的,并将其输出到另一个名为name2.txt的txt文件中。例如,我在txt文件中有: G2010060sample.pngWindows 7 从文本文件中读取特定字母的批处理文件?,windows-7,batch-file,Windows 7,Batch File,我有一个名为named.txt的txt文件。有没有办法创建一个批处理文件,从name.txt的每一行读取每一个字母2到7个字母,忽略其余的,并将其输出到另一个名为name2.txt的txt文件中。例如,我在txt文件中有: G2010060sample.png G2010061sample.png G2010062sample.png G2010063sample.png 批处理文件将创建一个新的txt文件,如下所示: 2010060.png 2010061.png 2010062.png 20
G2010061sample.png
G2010062sample.png
G2010063sample.png 批处理文件将创建一个新的txt文件,如下所示: 2010060.png
2010061.png
2010062.png
2010063.png
cut-b2-7,15-18outfile.txt
cut -b 2-7,15-18 < infile.txt > outfile.txt
优秀的在线资源
您使用的是什么操作系统?Windows,类似Unix?只有当文件名都是14个字符长时,15-18部分才能保证获得扩展名。除非您使用cygwin或类似工具安装,否则Windows上不提供Plus cut。非常感谢!!效果很好,但有个问题。当我再次运行它时,它会重复所有的名称。有没有办法停止重复这些名字。它显示了2010060.png 2010061.png 2010062.png 2010063.png 2010060.png 2010061.png 2010062.png 2010063.pngI不太明白重复名称的意思。这个非常简单的批处理接受您的input.txt并生成output.txt。。。如果名称在input.txt中重复,那就太可惜了。在for/f中使用input.txt之前,您可能希望使用如下行自动创建input.txt:dir/b G*.png>input.txt。
@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