megaloman,
сократил вот так:
PHP код:

@Echo Off &Cls
Set "BoxOut=D:\Box_Out"
For /f "usebackq tokens=1* delims=:" %%i IN (`FindStr /R /N /C:"^:@S1" "%~dpnx0"`) Do Call :Out %%i %%j
Pause
Exit /B
:Out
For /f "usebackq delims=" %%s IN (`More +%1 "%~dpnx0"`) Do (
Echo "%%s"|>nul Find ":@S"&&Exit /B
>>"%BoxOut%\list1.txt" Echo %%s
)
Exit /B
:@S1
C:Program Files1 skjhdk kslhjdljsl sl;djl;jlsjd.txt
C:Program FilesAdvanced IP Scanner2 sslm jds;ll; dalj;al lajl;akjsl;ka.png
C:Program Files (x86)3 aklljalkjs akjslkajlasjl akljlakjljs.dbf
:@S2
C:Program Files4 adSA SDASD DADADD.xls
C:Program Files (x86)5 aSDFDSA CSAS SAASAS.doc
как ещё я могу сократить? например, чтобы вообще без вызова функции? я буду передавать название списка и внешнего файла двумя переменными.