Buradaki cevap ( https://stackoverflow.com/a/2732991/4752883 ) plink
veya kullanarak bir uzak linux makinesinde bir komut dosyası çalıştırmayı deniyorsanız harika çalışıyor ssh
. Komut dosyasında birden fazla satır varsa çalışacaktır linux
.
** Ancak, yerel bulunan bir toplu komut dosyasını çalıştırmak çalışıyorsanız linux/windows
makine ve uzak bir makinedir Windows
ve bu kullanarak birden hatlarından oluşmaktadır **
plink root@MachineB -m local_script.bat
işe yaramayacak.
Sadece betiğin ilk satırı çalıştırılacak. Bu muhtemelen bir sınırlamasıdır plink
.
1. Çözüm:
Çok satırlı bir toplu iş komut dosyası çalıştırmak için (özellikle nispeten basitse, birkaç satırdan oluşan):
Orijinal toplu komut dosyanız aşağıdaki gibidir:
cd C:\Users\ipython_user\Desktop
python filename.py
"&&" ayırıcısını kullanarak
local_script.bat
dosyanızı aşağıdaki gibi aşağıdaki şekilde birleştirebilirsiniz
: https://stackoverflow.com/a/8055390/4752883 :
cd C:\Users\ipython_user\Desktop && python filename.py
Bu değişiklikten sonra, betiği @ JasonR.Coombs tarafından belirtildiği şekilde çalıştırabilirsiniz: https://stackoverflow.com/a/2732991/4752883
2. Çözüm:
Toplu betiğiniz göreceli olarak karmaşıksa, @Martin https://stackoverflow.com/a/32196999/4752883 tarafından belirtildiği gibi, aşağıdaki gibi plink komutunu içeren bir toplu komut dosyası kullanmak daha iyi olabilir :
rem Open tunnel in the background
start plink.exe -ssh [username]@[hostname] -L 3307:127.0.0.1:3306 -i "[SSH
key]" -N
rem Wait a second to let Plink establish the tunnel
timeout /t 1
rem Run the task using the tunnel
"C:\Program Files\R\R-3.2.1\bin\x64\R.exe" CMD BATCH qidash.R
rem Kill the tunnel
taskkill /im plink.exe