musicstashall
Знающий
- Сообщения
- 322
- Репутация
- 7
Имеется замечательный способ от CreatoR:
Но в нем отсутствует один нужный вариант — если строка такая C:\Program Files\Unknown.dat\setup.exe /s C:\test.exe /s
То есть, в параметрах имеется тоже путь к файлу с параметрами.
Я эту тему так и не усвоил, она для меня сложная. Прошу помочь внести корректировочку в паттерн от CreatoR
Хотелось бы так же получить массив путей из строки параметра, чтобы его обработать в нужном порядке. Либо включать варианты паттернов для извлечения первого пути или последнего.
Код:
Dim $aPath[10]
$aPath[0] = '"C:\Program Files\Unknown.dat\setup.exe" test.exe'
$aPath[1] = 'C:\Program Files\Unknown.dat\setup.exe test.exe'
$aPath[2] = 'C:\Program Files\Unknown.dat\setup.exe /d test.exe'
$aPath[3] = 'C:\Program Files\Unknown.dat\setup.exe test.exe /d'
$aPath[4] = 'C:\Program Files\Unknown.dat\setup.exe C:\#test.exe'
$aPath[5] = 'C:\Program Files\Unknown.dat\setup.exe #d C:\test.exe'
$aPath[6] = 'C:\Program Files\Unknown.dat\setup.exe test1.exe test2.exe'
$aPath[7] = 'C:\Program Files\Unknown.dat\setup.exe %1 -d -text.log'
$aPath[8] = 'explorer.exe C:\Program Files\test.txt'
$aPath[9] = 'explorer.exe %1 -a -b ...'
$sQuotes_Pattern = '(?:"?)+' ;Кавычки (опционально, могут содержаться в множественном числе - подряд).
$sPath_Pattern = '((?:.*\\)?.*?\..*?)' ;Извлекаемый путь (с учётом точки и расширение имени файла).
$sParams_Pattern = ' (.*)$' ;Параметры (пробел после пути, и всё что после).
$sPattern = $sQuotes_Pattern & $sPath_Pattern & $sQuotes_Pattern & $sParams_Pattern
$sReplace = '\1' ;Замена (используется в закомментированном RegExpReplace), в данном случае нам нужна только первая группа, т.е извлекаемый путь
For $i = 0 To UBound($aPath) - 1
$aRet = StringRegExp($aPath[$i], $sPattern, 3)
ConsoleWrite("[" & $aPath[$i] & "]" & @LF)
For $j = 0 To UBound($aRet)-1
ConsoleWrite(@TAB & $j & ": " & $aRet[$j] & @LF)
Next
;~ ConsoleWrite(@TAB & "[RegExpReplace] " & StringRegExpReplace($aPath[$i], $sPattern, $sReplace) & @CRLF)
ConsoleWrite(@LF)
Next
Но в нем отсутствует один нужный вариант — если строка такая C:\Program Files\Unknown.dat\setup.exe /s C:\test.exe /s
То есть, в параметрах имеется тоже путь к файлу с параметрами.
Я эту тему так и не усвоил, она для меня сложная. Прошу помочь внести корректировочку в паттерн от CreatoR
Хотелось бы так же получить массив путей из строки параметра, чтобы его обработать в нужном порядке. Либо включать варианты паттернов для извлечения первого пути или последнего.