Вот так после правки. Работает
HTML код:

Func _Convert()
Local $s_Read, $s_Ico, $s_Delim = '#!#', $s_NewString = 'M '
$s_Read =StringSplit(GUICtrlRead($Edit1),@CRLF,1)
If $s_Read[0] < 5 Then Return
$s_Ico = StringRegExpReplace($s_Read[4], '^.*,', '')
$s_NewString &= StringRegExpReplace($s_Read[5] & $s_Delim & $s_Ico & $s_Delim & $s_Read[2] & $s_Delim & $s_Read[3], $s_Delim & '$|\s+', '')
ConsoleWrite($s_NewString & @LF)
GUICtrlSetData($Edit2, $s_NewString)
EndFunc
Хотя опять наткнулся на камень под водой. В строке, обозначеной переменной $sRead[5] не надо удалять пробелы, так как это подсказка, но в то же время последнее слово подсказки должно писаться слитно с остальной строкой. Пример после работы функции
HTML код:

M Открытьвыделенныефайлы\папкивAIMP3#!#387#!#Programs\Players\AIMP3\AIMP3.exe#!#%P%S
а надо получить
HTML код:

M Открыть выделенные файлы\папки в AIMP3#!#387#!#Programs\Players\AIMP3\AIMP3.exe#!#%P%S