пакетный файл для чтения определенных букв из текстового файла?

У меня есть текстовый файл с именем named.txt. Есть ли способ создать пакетный файл для чтения каждых букв со 2 по 7 из каждой строки из name.txt, игнорирования остальных и вывода его в другой текстовый файл с именем name2.txt. Например, у меня есть это в файле txt:

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

и пакетный файл создаст новый текстовый файл, подобный этому:

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


person steven    schedule 15.09.2010    source источник
comment
Какую операционную систему ты используешь ? Windows, Unix-подобные?   -  person Andre Holzner    schedule 15.09.2010


Ответы (2)


Отличный онлайн-ресурс 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
person Philibert Perusse    schedule 16.09.2010
comment
Большое спасибо!! работает отлично, но есть проблема. Когда я запускаю его снова, он повторяет имена повсюду. Есть ли способ перестать повторять имена. Он показывает 2010060.png 2010061.png 2010062.png 2010063.png2010060.png 2010061.png 2010062.png 2010063.png - person steven; 17.09.2010
comment
Я не совсем понимаю, что вы имеете в виду, когда повторяете имена. Этот очень простой пакет берет ваш input.txt и генерирует output.txt... если имена повторяются в input.txt, это позор. Вы можете автоматически создать файл input.txt с помощью такой строки: dir /b G*.png›input.txt непосредственно перед использованием input.txt в файле for /f. - person Philibert Perusse; 22.09.2010

person    schedule
comment
Часть 15-18 гарантированно получит расширение только в том случае, если все имена файлов состоят из 14 символов. - person Instantsoup; 15.09.2010
comment
Plus cut недоступен в Windows, если вы не установите его с помощью cygwin или чего-то подобного. - person Radomir Dopieralski; 15.09.2010