Buradaki cevap ( https://stackoverflow.com/a/2732991/4752883 ) plink
veya komutunu kullanarak uzak bir linux makinesinde komut dosyası çalıştırmaya çalışıyorsanız harika çalışır ssh
. Komut dosyasının üzerinde birden fazla satır varsa çalışır linux
.
** Ancak, yerel bir linux/windows
makinede bulunan bir toplu komut dosyasını çalıştırmaya çalışıyorsanız ve uzak makineniz ise Windows
ve ** kullanarak birden çok satırdan oluşursa
plink root@MachineB -m local_script.bat
işe yaramaz.
Komut dosyasının yalnızca ilk satırı yürütülür. Bu muhtemelenplink
.
Çözüm 1:
Çok satırlı bir toplu komut dosyası çalıştırmak için (özellikle birkaç satırdan oluşan nispeten basitse):
Orijinal toplu komut dosyanız aşağıdaki gibi ise
cd C:\Users\ipython_user\Desktop
python filename.py
"&&" ayırıcısını kullanarak local_script.bat
dosyanızda aşağıdaki gibi satırları birleştirebilirsiniz
:
https://stackoverflow.com/a/8055390/4752883 :
cd C:\Users\ipython_user\Desktop && python filename.py
: Bu değişiklikten sonra, daha sonra @ JasonR.Coombs burada sivri out gibi komut çalıştırabilirsiniz https://stackoverflow.com/a/2732991/4752883 ile:
`plink root@MachineB -m local_script.bat`
Çözüm 2:
Toplu komut dosyanız nispeten karmaşıksa, plink komutunu kapsayan ve @Martin https://stackoverflow.com/a/32196999/4752883 tarafından burada belirtildiği gibi 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