Hi, The tramp shell uses local shell setting (explicit-shell-file-name and shell-file-name) in Windows. However, according to the documents, for example, in tramp-handle-shell-command: ;; We cannot use `shell-file-name' and `shell-command-switch', ;; they are variables of the local host. Instead, it uses the arguments tramp-remote-shell and tramp-remote-shell-args from the variable tramp-methods. Windows7, GNU Emacs 27.0.50 (build 1, x86_64-w64-mingw32) of 2017-10-21 explicit-shell-file-name = nil shell-file-name = "C:/Users/username/emacs/libexec/emacs/27.0.50/x86_64-w64-mingw32/cmdproxy.exe" - Problem 1: tramp and dired-do-shell-command: start: Unknown job: /b Why "start /b" is called remote side? When I run tramp (plink) and go to a remote buffer (dired mode), run dired-do-shell-command (!) on marked file (for example, /opt/bin/R CMD BATCH * &). It popup the buffer of * Async Shell Command *, and the command is not run but a message "start: Unknown job: /b" which looks it runs the windows-like command "start /b ..." on the remote shell. A test without "&" (non-ascync): 11:07:06.340383 tramp-handle-insert-directory (0) # Opening directory /plink:user@host:/opt/user/test/...done 11:07:35.748442 tramp-send-command (6) # ( cd /opt/user/test/ && /bin/sh -c start\ /b\ /opt/bin/R\ CMD\ BATCH\ --no-restore\ --no-save\ \"coxph.r\" /dev/null; echo tramp_exit_status $? I have set ido-mode or icomplete-mode to nil. The only tramp setting I used: (push '("plink" (tramp-login-program "plink") (tramp-login-args (("-l" "%u") ("-P" "%p") ("-ssh") ("%h"))) (tramp-remote-shell "/bin/sh") (tramp-remote-shell-args ("-c")) (tramp-copy-program "pscp") (tramp-copy-args (("-l" "%u") ("-P" "%p") ("-scp") ("-p" "%k") ("-q") ("-r"))) (tramp-copy-keep-date t) (tramp-copy-recursive t) (tramp-default-port 22)) tramp-methods) Best Regards, Shuguang Sun