我一直在尋找一種方法來將引號放在沒有它們的Windows服務路徑中,因爲它們有空格。見https://regex101.com/r/N6cbk8/2爲我找到了正則表達式其中強調我要加上引號中的字符串,因此,例如:在PowerShell中匹配列表中的第一個可執行路徑
D:\SerPatHL7Server\RunAsService.exe runasservice d:\SerPatHL7Server\SerPatHL7server.exe
需求,成爲
"D:\SerPatHL7Server\RunAsService.exe" runasservice d:\SerPatHL7Server\SerPatHL7server.exe
而其他服務需要也需要像這樣的報價:
E:\Program Files (x86)\Endobase\ebserver.exe
成爲
"E:\Program Files (x86)\Endobase\ebserver.exe"
但PowerShell的將不接受\ K的| Select-String -Pattern "(^.*?)\K\.exe"
並引發錯誤:"The string (^.\*?)\K\.exe is not a valid regular expression: parsing "(^.*?)\K\.exe" - Unrecognized escape sequence \K."
我找不到我的正則表達式有限表達知識的替代品。 有關示例的完整列表,請參閱上面的鏈接。有沒有辦法實現我的目標?
刪除'\ K',你不需要在這裏。使用'-replace「^。*?\。exe(?!\ S)」,'「$&」'' –