@@ -202,28 +202,31 @@ private ProcessStartInfo PrepareProcessStartInfo(string command, bool runAsAdmin
202202 {
203203 case Shell . Cmd :
204204 {
205- info . FileName = "cmd.exe" ;
206- info . Arguments = $ "{ ( _settings . LeaveShellOpen ? "/k" : "/c" ) } { command } { ( _settings . CloseShellAfterPress ? $ "&& echo { context . API . GetTranslation ( "flowlauncher_plugin_cmd_press_any_key_to_close" ) } && pause > nul /c" : "" ) } ";
207-
208- //// Use info.Arguments instead of info.ArgumentList to enable users better control over the arguments they are writing.
209- //// Previous code using ArgumentList, commands needed to be separated correctly:
210- //// Incorrect:
211- // info.ArgumentList.Add(_settings.LeaveShellOpen ? "/k" : "/c");
212- // info.ArgumentList.Add(command); //<== info.ArgumentList.Add("mkdir \"c:\\test new\"");
213-
214- //// Correct version should be:
215- //info.ArgumentList.Add(_settings.LeaveShellOpen ? "/k" : "/c");
216- //info.ArgumentList.Add("mkdir");
217- //info.ArgumentList.Add(@"c:\test new");
218-
219- //https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.processstartinfo.argumentlist?view=net-6.0#remarks
205+ if ( _settings . UseWindowsTerminal )
206+ {
207+ info . FileName = "wt.exe" ;
208+ info . ArgumentList . Add ( "cmd" ) ;
209+ }
210+ else
211+ {
212+ info . FileName = "cmd.exe" ;
213+ }
220214
215+ info . ArgumentList . Add ( $ "{ ( _settings . LeaveShellOpen ? "/k" : "/c" ) } { command } { ( _settings . CloseShellAfterPress ? $ "&& echo { context . API . GetTranslation ( "flowlauncher_plugin_cmd_press_any_key_to_close" ) } && pause > nul /c" : "" ) } ") ;
221216 break ;
222217 }
223218
224219 case Shell . Powershell :
225220 {
226- info . FileName = "powershell.exe" ;
221+ if ( _settings . UseWindowsTerminal )
222+ {
223+ info . FileName = "wt.exe" ;
224+ info . ArgumentList . Add ( "powershell" ) ;
225+ }
226+ else
227+ {
228+ info . FileName = "powershell.exe" ;
229+ }
227230 if ( _settings . LeaveShellOpen )
228231 {
229232 info . ArgumentList . Add ( "-NoExit" ) ;
@@ -232,21 +235,28 @@ private ProcessStartInfo PrepareProcessStartInfo(string command, bool runAsAdmin
232235 else
233236 {
234237 info . ArgumentList . Add ( "-Command" ) ;
235- info . ArgumentList . Add ( $ "{ command } ; { ( _settings . CloseShellAfterPress ? $ "Write-Host '{ context . API . GetTranslation ( "flowlauncher_plugin_cmd_press_any_key_to_close" ) } '; [System.Console]::ReadKey(); exit" : "" ) } ") ;
238+ info . ArgumentList . Add ( $ "{ command } \\ ; { ( _settings . CloseShellAfterPress ? $ "Write-Host '{ context . API . GetTranslation ( "flowlauncher_plugin_cmd_press_any_key_to_close" ) } '\\ ; [System.Console]::ReadKey()\\ ; exit" : "" ) } ") ;
236239 }
237240 break ;
238241 }
239242
240243 case Shell . Pwsh :
241244 {
242- info . FileName = "pwsh.exe" ;
245+ if ( _settings . UseWindowsTerminal )
246+ {
247+ info . FileName = "wt.exe" ;
248+ info . ArgumentList . Add ( "pwsh" ) ;
249+ }
250+ else
251+ {
252+ info . FileName = "pwsh.exe" ;
253+ }
243254 if ( _settings . LeaveShellOpen )
244255 {
245256 info . ArgumentList . Add ( "-NoExit" ) ;
246257 }
247258 info . ArgumentList . Add ( "-Command" ) ;
248- info . ArgumentList . Add ( $ "{ command } ; { ( _settings . CloseShellAfterPress ? $ "Write-Host '{ context . API . GetTranslation ( "flowlauncher_plugin_cmd_press_any_key_to_close" ) } '; [System.Console]::ReadKey(); exit" : "" ) } ") ;
249-
259+ info . ArgumentList . Add ( $ "{ command } \\ ; { ( _settings . CloseShellAfterPress ? $ "Write-Host '{ context . API . GetTranslation ( "flowlauncher_plugin_cmd_press_any_key_to_close" ) } '\\ ; [System.Console]::ReadKey()\\ ; exit" : "" ) } ") ;
250260 break ;
251261 }
252262
@@ -279,33 +289,6 @@ private ProcessStartInfo PrepareProcessStartInfo(string command, bool runAsAdmin
279289
280290 break ;
281291 }
282- case Shell . TerminalPWSH :
283- {
284- info . FileName = "wt.exe" ;
285- info . ArgumentList . Add ( "pwsh" ) ;
286- if ( _settings . LeaveShellOpen )
287- {
288- info . ArgumentList . Add ( "-NoExit" ) ;
289- }
290- info . ArgumentList . Add ( "-Command" ) ;
291- info . ArgumentList . Add ( command ) ;
292- break ;
293- }
294- case Shell . TerminalCMD :
295- {
296- info . FileName = "wt.exe" ;
297- info . ArgumentList . Add ( "cmd" ) ;
298- if ( _settings . LeaveShellOpen )
299- {
300- info . ArgumentList . Add ( "/k" ) ;
301- }
302- else
303- {
304- info . ArgumentList . Add ( "/c" ) ;
305- }
306- info . ArgumentList . Add ( command ) ;
307- break ;
308- }
309292 default :
310293 throw new NotImplementedException ( ) ;
311294 }
0 commit comments