সেন্ডো ফোল্ডারে শেল স্ক্রিপ্ট ব্যবহার করা কি সম্ভব?


9

আমি SendToফোল্ডার থেকে বাশ শেল স্ক্রিপ্ট ব্যবহার করতে চাই । যখন আমি কোনও ব্যাচের শর্টকাট রাখি বা SendToফোল্ডারে এক্সপিটি শেল Send Toপ্রসঙ্গে সাবমেনুতে প্রদর্শিত হয় তবে শর্টকাট শেল স্ক্রিপ্টের দিকে ইঙ্গিত করলে তা হয় না।

আমি যে ওএসটির পরীক্ষা করছি এটি হ'ল উইন 7 হোম প্রিমিয়াম এসপি 1। এক্সটেনশনটি .shযা MinGW এর bash.exe এর সাথে যুক্ত হয়েছে।

আমার শেল স্ক্রিপ্টটির একটি .shএক্সটেনশান রয়েছে এবং আমি এই ইউটিলিটিটি.sh ব্যবহার করে এক্সটেনশানটি বিচ্ছিন্ন করার চেষ্টা করেছি (আমি মনে করি মিনজিডাব্লিউ এটি প্রাথমিকভাবে সেট আপ করেছিল, তবে এটি কার্যকর হয়নি) এবং এটি ব্যবহার করে এটি পুনরায় সংযুক্ত করার চেষ্টা করেছি:

ftype ShellScript=c:\MinGW\msys\1.0\bin\bash.exe -c "'%1' %2"
assoc .sh=ShellScript

অ্যাডমিন সেন্টিমিড শেল এ। যদিও এটি একটি কমান্ড প্রম্পটে এবং এক্সপ্লোরার শেলটিতে (ডাবল ক্লিকের মাধ্যমে) কাজ করে, এটি Send Toমেনুতে প্রদর্শিত হবে না এবং এটি স্ক্রিপ্টের শীর্ষে কোনও ফাইল সরাসরি টেনে এনে একটি পরামিতি গ্রহণ করবে না।

কেউ কি জানেন আমি কীভাবে এটি করব?


1
আপনি যদি শেল স্ক্রিপ্টের শর্টকাটটিতে ডাবল ক্লিক করেন তবে এক্সপ্লোরার কি ব্যাশ শেল স্ক্রিপ্টটি চালায়? শর্টকাটটি কি কেবল শেল স্ক্রিপ্টের জন্য বা শ্যাশ স্ক্রিপ্টের সাহায্যে প্যাশামাইটাইজ করা হয়েছে?
ওয়ার্নার হেনজে

স্ক্রিপ্টের ফাইল এক্সটেনশন কী? আপনি কি এই ধরণের জন্য একটি ফাইল টাইপ সমিতি স্থাপন করেছেন? উইন্ডোজ উপস্থিত থাকলে ব্যাং লাইনটি প্রক্রিয়া করতে পারে না। উইন্ডোসের জন্য আপনি কোন বাশ ব্যবহার করছেন?
ফ্রাঙ্ক থমাস

@ ফ্র্যাঙ্কথোমাস: আপনার প্রশ্নের অতিরিক্ত অনুরোধ আমি যুক্ত করেছি।
অ্যাড্রিয়ান

@ ওয়ার্নারহেঞ্জ: স্ক্রিপ্টের একটি লিঙ্কের উপরে একটি ফাইল টেনে আনার প্রয়াস ক্রস সহ একটি লাল বৃত্ত উপস্থিতির কারণ হয়ে দাঁড়ায়। এটি সরাসরি স্ক্রিপ্টের উপরে রাখার চেষ্টা করা হয় না (যা বলে Move to *dir*) কাজ করে না , তাই আমি ভাবছি যে এটি কোনও কারণে পরামিতি নিচ্ছে না যদিও ডাবল ক্লিক করলে এটি কার্যকর করা হয়। কোন ধারণা কেন এমন হবে?
অ্যাড্রিয়ান

ওয়ার্নার হেনজের দ্বিতীয় প্রশ্নের উত্তর আমি খুঁজে পাই না, একইভাবে একই দিকে: আপনি কি c:\MinGW\msys\1.0\bin\bash.exe -c C:\Path\To\Your\Script.shশর্টকাটের জন্য লক্ষ্য হিসাবে ব্যবহার করার চেষ্টা করেছিলেন SendTo?
এমপিপি

উত্তর:


4

এটি যে কোনও স্ক্রিপ্টে টেনে আনুন এবং ছাড়ুন enable আপনি এর মধ্যে একটি সেন্ডটো ফোল্ডারে রাখতে পারেন এবং এটি পরে ব্যবহার করতে পারেন।

রেজিস্ট্রি রফতানি:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\ShellFile]

[HKEY_CLASSES_ROOT\ShellFile\Shell]

[HKEY_CLASSES_ROOT\ShellFile\Shell\Open]

[HKEY_CLASSES_ROOT\ShellFile\Shell\Open\Command]
@=hex(2):43,00,3a,00,5c,00,70,00,61,00,74,00,68,00,5f,00,65,00,78,00,74,00,5c,\
  00,62,00,61,00,73,00,68,00,2e,00,65,00,78,00,65,00,20,00,2d,00,63,00,20,00,\
  22,00,73,00,6f,00,75,00,72,00,63,00,65,00,20,00,24,00,30,00,3b,00,72,00,65,\
  00,61,00,64,00,22,00,20,00,25,00,31,00,20,00,25,00,2a,00,00,00

[HKEY_CLASSES_ROOT\ShellFile\ShellEx]

[HKEY_CLASSES_ROOT\ShellFile\ShellEx\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"

হেক্স অংশটি আসলে রফতানীতে "C:\cygwin\bin\bash.exe -c "source $0;read" %1 %*"এনকোড হয়ে যায়।

আপনি সম্ভবত readপরীক্ষার পরে অপসারণ করতে চাইবেন , যাতে আপনি এমন স্ক্রিপ্ট লিখতে পারেন যা খালি উইন্ডো না রেখে কোনও কাজ সম্পাদন করে। আপনার যদি একক স্ক্রিপ্টগুলির জন্য এটির প্রয়োজন হয় তবে আপনি সর্বদা এটির সাথে যুক্ত করতে পারেন।

assoc .ext=ShellFileএই কার্যকারিতাটির সাথে আপনার যে কোনও ফাইল এক্সটেনশানটি লিঙ্ক করতে আমদানির পরে ব্যবহার করুন । এই উদাহরণে ড্রপহ্যান্ডলার উইন্ডোজ এক্সপি এবং উইন্ডোজ। (সম্ভবত অন্যরাও) এর জন্য কাজ করে এবং মূলত "কমান্ডটি চালান, সমস্ত বাদ দেওয়া ফাইলের নাম যুক্তি হিসাবে" "

echotest.extপ্রাথমিক কার্যকারিতা পরীক্ষা করতে এটি স্ক্রিপ্ট ( ) হিসাবে ব্যবহার করুন :

echo $0 $*;

sourceঅন্য শেলটির অনুরোধ রোধ করতে এবং ড্রাগ এবং ড্রপ সম্পর্কে আমার পার্শ্ব প্রশ্নের উত্তর দেওয়ার জন্য +1 । দুর্ভাগ্যক্রমে এটি মূল প্রশ্ন নয়, সুতরাং দুর্ভাগ্যক্রমে আপনি অনুগ্রহ পাবেন না। কিন্তু ধন্যবাদ. আমি সাফল্য ছাড়াই এটি বের করার চেষ্টা করেছি। (Y)
অ্যাড্রিয়ান

এটি আপনাকে স্ক্রিপ্টের প্যারামিটারের সাথে bash.exe লিঙ্ক তৈরি না করে সরাসরি সেন্ডো ফোল্ডারে শেলস স্ক্রিপ্টগুলি ব্যবহার করার অনুমতি দেবে। আমি সত্যই বিশ্বাস করি এটি আপনার প্রশ্নের জবাব দেয়, যখন স্বীকৃত উত্তরটি কার্যকরভাবে সরবরাহ করে। যদিও তর্ক করতে যাচ্ছি না: পি
স্কিজি

ওহ, জেনে রাখা ভাল। ধন্যবাদ। হুম, ততক্ষণে কে অনুদান দেবে তা নিশ্চিত নই। :(
অ্যাড্রিয়ান

এমপি, তিনি প্রথমে আপনার সমস্যার সমাধান করেছেন। আমি কৌতূহল ছাড়াই এই কাজ করেছি। এছাড়াও আমি তখন থেকে স্ক্রিপ্টগুলিতে সেন্ডটো এবং ড্রাগ এবং ড্রপ ব্যবহার বন্ধ করতে পারি না, এটি আমার পুরষ্কার হবে!
স্কিজি

আমার কাছ থেকেও +1 source, এটি সত্যই একটি ভাল পয়েন্ট। @ অ্যাড্রিয়ান: এখন আপনি জানেন, এসইউ আপনাকে খুব তাড়াতাড়ি এই অনুদানটি দিতে দেয়নি কেন। আইএমএইচও স্কিজির উত্তর অনুগ্রহের দাবিদার, কারণ তার উত্তরটি আরও মার্জিত; যদি আপনার খারাপ লাগে তবে ;)আপনি এখনও আমার উত্তরটি মেনে নিতে পারবেন (এটি যেমন আপনার সমস্যার সমাধানও করেছে) তবে আমি কেবল উক্তরূপেও ভাল থাকব।
এমপিপি

4

bashশেল ফাংশনটিতে SendTo(বা ড্রাগ এবং ড্রপের মাধ্যমে) কীভাবে যুক্তিটি পাস করবেন তা এখানে is উদাহরণ হিসাবে আমি বিল্টিন ব্যবহার করেছি echoSendToফোল্ডারে আপনার লিঙ্কের জন্য লক্ষ্যটি নীচে সেট করুন :

C:\cygwin\bin\bash.exe -c "echo Argument: $0; read"

প্রদত্ত কমান্ড লাইনের পরে$0 প্রথম আর্গুমেন্টটি এখানে দাঁড়ায় a) , অর্থাৎ সেই ফাইলটির পুরো ফাইলের নাম যার উপর পাঠানো অ্যাকশনটি কার্যকর করা হয়েছিল। উইন্ডোটি খোলা রাখে, যাতে আপনি বার্তাটি পড়তে পারেন। (আমি এটি সাইগউইনের মাধ্যমে পরীক্ষা করেছি , তবে আমি মনে করি মিংডব্লিউয়েরও কাজ করা উচিত।)readbashbash

আপনার ক্ষেত্রে, লক্ষ্য হওয়া উচিত

c:\MinGW\msys\1.0\bin\bash.exe -c "/path/to/your/script.sh $0; read"

এখন আপনার স্ক্রিপ্ট ফাইলের নাম প্রক্রিয়া করতে পারে। তবে মনে রাখবেন, ফাইলের নামটি প্রথম আর্গুমেন্ট হিসাবে স্ক্রিপ্টে প্রেরণ করা হয় , সুতরাং স্ক্রিপ্টের ভিতরে ফাইলের নামটি উল্লেখ করা হয়$1


শেষ, তবে এখানে সংক্ষিপ্তসার হিসাবে দুটি স্ক্রিনশট নেই:

এখানে চিত্র বর্ণনা লিখুন


এখানে চিত্র বর্ণনা লিখুন


ক) আপনি উদ্ধৃত করেছেন man bash:

-c stringযদি -c বিকল্প উপস্থিত থাকে তবে কমান্ডগুলি স্ট্রিং থেকে পঠিত হবে। স্ট্রিংয়ের পরে যদি আর্গুমেন্ট থাকে তবে তাদের অবস্থানিক পরামিতিগুলিতে বরাদ্দ করা হয়,, 0 দিয়ে শুরু করে।

এটি বুঝতে, উদাহরণস্বরূপ নিম্নলিখিত লক্ষ্য লাইনটি ব্যবহার করুন:

C:\cygwin\bin\bash.exe -c "echo This is $0; read" Foo Bar Baz

এটি মুদ্রণ করবে This is Foo, যখন

C:\cygwin\bin\bash.exe -c "echo This is $2; read" Foo Bar Baz

মুদ্রণ করবে This is Baz। সুতরাং "স্ট্রিং" হ'ল অ্যাস্টোস্টোফেসের মধ্যে থাকা সমস্ত Foo Bar Bazকিছু এবং যুক্তি।


1
আহ্, এটাই বোঝা গেল। এখন জ্ঞান করে তোলে। ধন্যবাদ. আমি আপনাকে বরাদ্দ করব যত তাড়াতাড়ি এসও আমাকে ছেড়ে দেবে। (বলে যে কোনও কারণে শ্রাগের জন্য আমি এটি 11 ঘন্টার মধ্যে করতে পারি )
অ্যাড্রিয়ান

0

উইন্ডোজ কোনও .sh ফাইলের সাথে লিঙ্ক করতে অস্বীকার করে, আপনি সম্ভবত।

যদি এটি কাজ না করে তবে আপনি .bat কে .exe তে সংকলন করতে চেষ্টা করতে পারেন।
একটি দ্রুত গুগল পাওয়া গেছে:

ব্যাচ সংকলক
ব্যাট-টু-এক্সে


আমি জানি যে আমি প্রক্সি ব্যাট বা এক্সি ব্যবহার করতে পারি। আমি জানতে চাই যে এ জাতীয় প্রক্সি ছাড়াই এটি করা যায় কিনা।
অ্যাড্রিয়ান

0

আরইজি ফাইলের এই আপডেট হওয়া সংস্করণটি ব্যবহার করে দেখুন (নোট করুন আমি -৪-বিট উইন্ডোজ use ব্যবহার করি; আপনার কাছে ৩২-বিট উইন,, ভিস্তা বা এক্সপি থাকলে এর System32পরিবর্তে ব্যবহার করুন SysWOW64):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\ShellFile]
@="Shell Script"

[HKEY_CLASSES_ROOT\ShellFile\DefaultIcon]
@="C:Windows\\SysWOW64\\imageres.dll,-68"

[HKEY_CLASSES_ROOT\ShellFile\shell]

[HKEY_CLASSES_ROOT\ShellFile\shell\edit]

[HKEY_CLASSES_ROOT\ShellFile\shell\edit\command]
@="C:\\Windows\\SysWOW64\\NOTEPAD.EXE %1"

[HKEY_CLASSES_ROOT\ShellFile\shell\open]
"EditFlags"=hex:00,00,00,00

[HKEY_CLASSES_ROOT\ShellFile\shell\open\command]
@="C:\\MinGW\\msys\\1.0\\bin\\bash.exe -c \"source $0;\" \"%1 %*\""

[HKEY_CLASSES_ROOT\ShellFile\shell\print]

[HKEY_CLASSES_ROOT\ShellFile\shell\print\command]
@="C:\\Windows\\SysWOW64\\NOTEPAD.EXE /p %1"

[HKEY_CLASSES_ROOT\ShellFile\shell\runas]
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\ShellFile\shell\runas\command]
@="C:\\MinGW\\msys\\1.0\\bin\\bash.exe -c \"source $0;\" \"%1 %*\""

[HKEY_CLASSES_ROOT\ShellFile\shell\runasuser]
@="@shell32.dll,-50944"
"Extended"=""
"SuppressionPolicyEx"="{F211AA05-D4DF-4370-A2A0-9F19C09756A7}"

[HKEY_CLASSES_ROOT\ShellFile\shell\runasuser\command]
"DelegatExecute"="{ea72d00e-4960-42fa-ba92-7792a7944c1d}"

[HKEY_CLASSES_ROOT\ShellFile\ShellEx]

[HKEY_CLASSES_ROOT\ShellFile\ShellEx\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"

এটি আপনার শেল স্ক্রিপ্টগুলি কোনও .bat ফাইলের মতোই প্রশাসক হিসাবে চালানোর অনুমতি দেয়। অন্য কথায়, উইন্ডোজ ভিস্তা এবং উইন্ডোজ 7 বা 8 ব্যবহার করার সময় এটি সমস্ত শেল স্ক্রিপ্টগুলি ইউএসি সামঞ্জস্য করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.