তৈরি পরিষেবাগুলির জন্য প্যারামিটারগুলিতে কিছু অদ্ভুত বিন্যাস সংক্রান্ত সমস্যা রয়েছে, বিশেষত যদি কমান্ডে ফাঁকা জায়গা বা কোট অন্তর্ভুক্ত থাকে:
আপনি যদি পরিষেবার জন্য কমান্ড লাইন প্যারামিটারগুলি প্রবেশ করতে চান তবে আপনাকে পুরো কমান্ড লাইনটি উদ্ধৃতিতে আবদ্ধ করতে হবে । (এবং binPath=
এমসওয়াডজে নির্দেশিত হিসাবে প্রথম উক্তিটির পরে এবং তার আগে সর্বদা একটি স্থান ছেড়ে দিন )
সুতরাং, কমান্ডটির জন্য একটি পরিষেবা তৈরি করতে PATH\COMMAND.EXE --param1=xyz
আপনি নিম্নলিখিত বিনপথ প্যারামিটারটি ব্যবহার করবেন:
binPath= "PATH\COMMAND.EXE --param1=xyz"
^^ ^
|| |
space quote quote
যদি পথ এক্সিকিউটেবল করতে স্পেস রয়েছে , আপনি ঘিরা আছে পথ উদ্ধৃতির মধ্যে।
সুতরাং একটি কমান্ডের জন্য যেখানে উভয় পরামিতি রয়েছে এবং ফাঁকা স্থান রয়েছে, আপনার নেস্টেড উক্তিগুলি দরকার । আপনাকে ব্যাকস্ল্যাশ সহ অভ্যন্তরীণ উক্তিগুলি থেকে বাঁচতে হবে \"। প্যারামিটারগুলিতে যদি কোট থাকে তবে একই হোল্ড রয়েছে, আপনার এগুলিও পালাতে হবে।
এস্কেপ অক্ষর হিসাবে ব্যাকস্ল্যাশগুলি ব্যবহার করা সত্ত্বেও, আপনাকে পথের মধ্যে থাকা নিয়মিত ব্যাকস্ল্যাশগুলি এড়ানোর দরকার নেই। এটি কীভাবে আপনি পালানোর অক্ষর হিসাবে সাধারণত ব্যাকস্ল্যাশ ব্যবহার করেন তার বিপরীত।
সুতরাং যেমন একটি কমান্ড জন্য
"PATH WITH SPACES \COMMAND.EXE" --param-with-quotes="a b c" --param2
:
binPath= "\"PATH WITH SPACES \COMMAND.EXE\" --param-with-quotes=\"a b c\" --param2"
^ ^ ^ ^ ^ ^ ^
| | | | | | |
opening escaped regular escaped escaped closing
quote quote backslash closing quotes quote
for for in quote for for
whole path path for path parameter whole
command command
এখানে এসভিএনজারিভ ডকুমেন্টেশনের একটি দৃ concrete় উদাহরণ দেওয়া হয়েছে, যা সমস্ত বিশেষ ক্ষেত্রে দেখায়:
sc create svnserve
binpath= "\"C:\Program Files\CollabNet Subversion Server\svnserve.exe\" --service -r \"C:\my repositories\" "
displayname= "Subversion Server" depend= Tcpip start= auto
(পাঠযোগ্যতার জন্য লাইন ব্রেকগুলি যুক্ত করা হয়েছে, সেগুলি অন্তর্ভুক্ত করবেন না)
এটি কমান্ড লাইনের সাথে একটি নতুন পরিষেবা যুক্ত করবে "C:\Program Files\CollabNet Subversion Server\svnserve.exe" --service -r "C:\my repositories"
।
সংক্ষেপে তাই
- প্রতিটি SC প্যারামিটার পর স্পেস:
binpath=_
, displayname=_
এবংdepend=_
- প্রতিটি স্ক প্যারামিটারে স্পেস রয়েছে অবশ্যই উদ্ধৃতিতে আবদ্ধ থাকতে হবে
- বিনপথের ভিতরে থাকা সমস্ত অতিরিক্ত উক্তি ব্যাকস্ল্যাশ সহ পালিয়ে গেছে: \"
- বিনপথের অভ্যন্তরে থাকা সমস্ত পশ্চাদপদগুলি এড়ানো যায় না
binPath= "c:\abc\def.exe /Param1=ghi"
সঠিক ধারণা বলে মনে হচ্ছে। ব্যাকস্ল্যাশগুলি কী এড়াতে হবে (অর্থাত "সি: \\ অবসি \\ ...")? সবচেয়ে খারাপ বিষয়, আপনি যদি সরাসরি এস.সি.এক্স.এটি না করতে পারেন তবে রেজিস্ট্রি মানটি সম্পাদন করতে পারেন।