উত্তর এখানে ( https://stackoverflow.com/a/2732991/4752883 ) কাজ করে মহান যদি আপনি ব্যবহার করে একটি দূরবর্তী লিনাক্স মেশিনে একটি স্ক্রিপ্ট চালানোর চেষ্টা করছেন plink
বা ssh
। স্ক্রিপ্টে একাধিক লাইন থাকলে এটি কাজ করবে linux
।
** তবে, আপনি যদি কোনও স্থানীয় linux/windows
মেশিনে অবস্থিত একটি ব্যাচ স্ক্রিপ্ট চালানোর চেষ্টা করছেন এবং আপনার দূরবর্তী মেশিনটি রয়েছে Windows
এবং এটিতে একাধিক লাইন রয়েছে **
plink root@MachineB -m local_script.bat
এটা কাজ করবে না।
স্ক্রিপ্টের প্রথম লাইনটিই কার্যকর করা হবে। এটি সম্ভবত একটি সীমাবদ্ধতা plink
।
সমাধান 1:
মাল্টলাইন ব্যাচের স্ক্রিপ্ট চালানোর জন্য (বিশেষত এটি তুলনামূলকভাবে সহজ হলে কয়েকটি লাইনে গঠিত):
যদি আপনার মূল ব্যাচের স্ক্রিপ্টটি নীচে থাকে
cd C:\Users\ipython_user\Desktop
python filename.py
আপনি নীচে আপনার local_script.bat
ফাইলটিতে
"&&" বিভাজক ব্যবহার করে লাইনগুলি একত্রিত করতে পারেন
https://stackoverflow.com/a/8055390/4752883 :
cd C:\Users\ipython_user\Desktop && python filename.py
এই পরিবর্তনের পরে, আপনি এখানে @ জেসনআর.কুমবস দ্বারা নির্দেশিত হিসাবে স্ক্রিপ্টটি চালাতে পারেন: https://stackoverflow.com/a/2732991/4752883
সমাধান 2:
আপনার ব্যাচের স্ক্রিপ্টটি তুলনামূলক জটিল হলে, ব্যাচ স্ক্রিপ্টটি ব্যবহার করা ভাল যা প্লিংক কমান্ডকে আবৃত করে সেইসাথে এখানে @ মার্টিন https://stackoverflow.com/a/32196999/4752883 দ্বারা নির্দেশিত নিম্নরূপ :
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