Win32-OpenSSH icon indicating copy to clipboard operation
Win32-OpenSSH copied to clipboard

Behavior when executing a batch file with the ssh command

Open makat1983 opened this issue 1 year ago • 2 comments
trafficstars

Summary of the new feature / enhancement

Run the batch file with the ssh command in the following way. The batch file contains the cls command, but does not erase the history. Running the same batch file while connected to ssh, cls works.

  1. Create a batch file on the server that does the following

echo test

cls

  1. Execute the following command to run the batch file with the ssh command

ssh user@server "chcp 65001 && C:\path\to\xxx.bat"

3.The result of the batch file execution is returned. cls does not erase the history.

PS C:\Users\makat> ssh user@server "chcp 65001 && C:\path\to\xxx.bat" administrator@home's password: Active code page: 65001

administrator@HOME C:\Users\Administrator>echo test test

administrator@HOME C:\Users\Administrator>cls

PS C:\Users\makat>

I assume that the reason the history does not disappear with the former method is that the results of the batch file executed on the server are returned to the local console of the client. I assume that the history disappears with the latter method because you are establishing an SSH connection and interacting directly with the server shell, so the effect of cls is reflected in the client's console.

Is the former behavior by design? If not, please consider whether it can be changed so that it is the latter behavior.

Proposed technical implementation details (optional)

No response

makat1983 avatar Jan 23 '24 09:01 makat1983

A note on terminology: the CLS command CLears the Screen (console character output buffer), not the "history". The term "history", in the context of a command-line shell, usually refers to the list of previously entered commands, which you can retrieve if you e.g. press cursor-up at the prompt.

mgkuhn avatar Feb 04 '24 09:02 mgkuhn

Try running ssh -t ... to force the allocation of a pseudo-terminal even when you are not using ssh interactively.

mgkuhn avatar Feb 04 '24 10:02 mgkuhn