আমি কীভাবে ব্যাচের ফাইলগুলিতে এম্পারস্যান্ডগুলি এড়াতে পারি?


146

startইউআরএলটিতে অ্যাম্পারস্যান্ডস সহ ওয়েব পৃষ্ঠাগুলি খুলতে কমান্ডটি ব্যবহার করার জন্য আমি কীভাবে একটি ব্যাচ ফাইলে (বা উইন্ডোজ কমান্ড লাইন থেকে) অ্যাম্পারস্যান্ডগুলি এড়াতে পারি ?

ডাবল উদ্ধৃতি দিয়ে কাজ করবে না start; এটি পরিবর্তে একটি নতুন কমান্ড-লাইন উইন্ডো শুরু করে।

আপডেট 1 : ওয়েল ডালোলের সমাধান কাজ করে। এছাড়াও, যদি ইউআরএলটিতে ইউআরএল কোডযুক্ত অক্ষর থাকে (যেমন স্থান% 20 হিসাবে এনকোড করা থাকে) এবং এটি একটি ব্যাচ ফাইলে থাকে তবে '%' অবশ্যই '%%' হিসাবে এনকোড হওয়া উচিত। উদাহরণ হিসাবে এটি হয় না।

উদাহরণস্বরূপ, কমান্ড লাইন থেকে ( CMD.EXE):

start http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8

ফলাফল হবে

http://www.google.com/search?client=opera 

ডিফল্ট ব্রাউজারে খোলা হচ্ছে এবং কমান্ড লাইন উইন্ডোতে এই ত্রুটিগুলি:

'rls' is not recognized as an internal or external command,
operable program or batch file.
'q' is not recognized as an internal or external command,
operable program or batch file.
'sourceid' is not recognized as an internal or external command,
operable program or batch file.
'ie' is not recognized as an internal or external command,
operable program or batch file.
'oe' is not recognized as an internal or external command,
operable program or batch file.

প্ল্যাটফর্ম: উইন্ডোজ এক্সপি 64 বিট এসপি 2।


1
আমি বেলুগাববের উত্তর সম্পাদনা করেছি যাতে এখন এটি কাজ করা উচিত। এটি কেবল একটি উদ্বেগ startযার কারণ হিসাবে যদি চিন্তাভাবনা না করে প্রয়োগ করা হয় তবে যুক্তিটি ব্যর্থ হয়ে যায়। এবং সামগ্রিকভাবে আমি মনে করি উদ্ধৃতিগুলিতে যুক্তিটি সংযুক্ত করা প্রতিটি চরিত্রের যেখানে পলায়ন দরকার তার থেকে বাঁচার চেয়ে সহজ এবং ত্রুটি-প্রবণ।
জোয়

প্লাস সাইন সম্পর্কে কী বলা +উচিত যা এড়াতে আমার সামনে রাখা উচিত?
উইলিয়াম

পাওয়ারশেলের start "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"কাজ করে কারণ পাওয়ারশেল উদ্ধৃতিগুলি সরিয়ে ফেলবে
ফুক্লভ

উত্তর:


91

একটি সেন্টিমিটার থেকে :

  • &ভালো পলান হয়: ^&(@Wael Dalloul এর উপর ভিত্তি করে উত্তর )
  • % পালাতে হবে না

একটি উদাহরণ:

start http://www.google.com/search?client=opera^&rls=en^&q=escape+ampersand%20and%20percentage+in+cmd^&sourceid=opera^&ie=utf-8^&oe=utf-8

একটি ব্যাচ ফাইল থেকে

  • &ভালো পলান হয়: ^&(@Wael Dalloul এর উপর ভিত্তি করে উত্তর )
  • %এভাবে পালানো হয়েছে: %%(ওপি আপডেটের ভিত্তিতে)

একটি উদাহরণ:

start http://www.google.com/search?client=opera^&rls=en^&q=escape+ampersand%%20and%%20percentage+in+batch+file^&sourceid=opera^&ie=utf-8^&oe=utf-8

এটিতে "%" পলায়নের উদাহরণও অন্তর্ভুক্ত থাকতে পারে - তবে আমি আমার প্রশ্নটি পরিষ্কার করতে পারি।
পিটার মর্টেনসেন

@ পিটারমোরটেনসেন অবশ্যই - আমি আমার উত্তর আপডেট করেছি।
লাসে

2
আমার কোন চরিত্রগুলিও পালানো উচিত? আমি লক্ষ্য করেছি যে আমাকে পালাতে হবে "|" "^ |" দ্বারা
তরল পদার্থটি

এই ক্ষেত্রে %যারা নিরীহ যথেষ্ট সংজ্ঞায়িত করতে হবে কারণ, পলান করা প্রয়োজন নেই 20andএকটি পরিবেশ পরিবর্তনশীল হিসেবে? আপনি যদি করেন, পরিবর্তে start http://www.google.com/search?q=ampersand%20and%20percentageলিঙ্ক করতে পারে http://www.google.com/search?q=ampersandsomething-silly20percentage^%সেন্টিমিডে পালাতে ব্যবহার করে উদাহরণটি প্রত্যাশার মতো কাজ করে।
TamaMcGlinn

145

&কমান্ড পৃথক করতে ব্যবহৃত হয়। সুতরাং আপনি ^পালাতে ব্যবহার করতে পারেন &


3
প্লাস সাইন সম্পর্কে কী বলা +উচিত যা এড়াতে আমার সামনে রাখা উচিত?
উইলিয়াম

এটি আরও সাধারণ প্রয়োগযোগ্য সমাধান। কমান্ড-লাইন প্রোগ্রামের প্যারামিটারে এক বা একাধিক এম্পারস্যান্ড থাকলে এটিও কাজ করে। আমি সবেমাত্র এটির মুখোমুখি হয়েছি - প্যারামিটারটি সিজিডব্লিউ 5 সিএমএম এবং 10 সি 4 এবং 8301 ছিল
পিটার মর্টেনসেন

ক্যারেট চরিত্রের সাথে একটি অ্যাম্পারস্যান্ডের উদ্ধৃতি all সমস্ত পরিস্থিতিতে কাজ করে বলে মনে হয় না। উদাহরণস্বরূপ, / p এর সাথে এমএসডিপ্লোই.এক্সি কার্যকর করার চেষ্টা করা: একটি অ্যাম্পারস্যান্ডের সাথে পাসওয়ার্ড দেওয়ার জন্য স্যুইচ করা আমি চেষ্টা করেছি এমন কোনও ক্রমানুসারে কাজ করছে বলে মনে হচ্ছে না (ক্যারেট উদ্ধৃতি, ডাবল উদ্ধৃতি, ডামি প্রথম যুক্তি)।
ডেরেক গ্রেয়ার

3
ব্যবহারের একটি উদাহরণ ^অমূল্য হবে।
jpmc26

2
@ jpmc26 আমি এই উত্তরে একটি উদাহরণ যুক্ত করেছি ।
লাসে

29

আপনি যদি কোনও ডামি প্রথম যুক্তি সরবরাহ করেন তবে আপনি এটিকে উদ্ধৃতিতে আবদ্ধ করতে পারেন।

নোট করুন যে আপনাকে এই ক্ষেত্রে একটি ডামি প্রথম যুক্তি সরবরাহ করতে startহবে , যেমনটি নতুন কনসোল উইন্ডোগুলির শিরোনাম হিসাবে প্রথম যুক্তিকে বিবেচনা করবে, যদি এটি উদ্ধৃত হয়। সুতরাং নিম্নলিখিতটি কাজ করা উচিত (এবং এখানে করে):

start "" "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"

ঠিক আছে, আমি স্বীকার করব শিরোনামটি পুরো প্রশ্নের সাথে মেলে না। (আপনি কি মনে করেন আমার শিরোনামটি আরও দীর্ঘ করা উচিত?)
পিটার মর্টেনসেন

এতটা 'দোহ' নয়, সর্বোপরি - উদ্ধৃতিগুলিতে আবদ্ধ করা সঠিক ধারণা ছিল - কনসোল উইন্ডো শিরোনাম জিনিসটি সম্পর্কে কেবল জানতেন না। ধন্যবাদ জোহানেস!
বেলুগাবব

পাওয়ারশেল আর্গুমেন্টগুলি থেকে উদ্ধৃতিগুলি কেটে ফেলবে , সুতরাং এটি ব্যর্থ হবে। আপনার কেবল start "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"পাওয়ারশেল
ফুচলভি


12

আদেশ

echo this ^& that

প্রত্যাশিত হিসাবে কাজ করে, আউটপুট

this & that

আদেশ

echo this ^& that > tmp

"tmp" ফাইলটিতে স্ট্রিং লিখে কাজ করে। তবে পাইপের আগে

echo this ^& that | clip

^ সম্পূর্ণরূপে আলাদাভাবে ব্যাখ্যা করা হয়। এটি পাইপকে "echo this" এবং "যে" দুটি কমান্ডের আউটপুট লেখার চেষ্টা করে। প্রতিধ্বনি কাজ করবে তখন "যে" একটি ত্রুটি দেবে। উক্তি

echo this ^& echo that | clip

ক্লিপবোর্ডে "এই" এবং "সেই" স্ট্রিংগুলি রাখবে।

^ ছাড়া

echo this & echo that | clip

প্রথম প্রতিধ্বনি কনসোলে লিখবে এবং কেবল দ্বিতীয় প্রতিধ্বনির ফলাফলটি ক্লিপটিতে পাইপ করা হবে (একইভাবে "> টিএমপি" পুনঃনির্দেশের জন্য)। সুতরাং, যখন আউটপুটটি পুনঃনির্দেশিত করা হচ্ছে, তখন the & quot টি উদ্ধৃত করে না বরং এর পরিবর্তে এটি পুনর্নির্দেশের পরিবর্তে পরিবর্তে প্রয়োগ করা হবে।

একটি & পাইপ করতে, আপনি এটি দুটি বার উদ্ধৃত করতে হবে

echo this ^^^& that | clip

যদি আপনি একটি পরিবর্তনশীল মধ্যে স্ট্রিং রাখুন

set m=this ^& that

তারপর

set m

আউটপুট হবে

m=this & that

তবে সুস্পষ্ট

echo %m%

ব্যর্থ হয় কারণ, উইন্ডোজ পরিবর্তনের পরিবর্তে পরিবর্তিত হয়, ফলস্বরূপ

echo this & that

এটি একটি নতুন কমান্ড হিসাবে পার্স করে এবং "এটি" চালানোর চেষ্টা করে।

একটি ব্যাচ ফাইলে, আপনি বিলম্বিত প্রসারণ ব্যবহার করতে পারেন :

setlocal enableDelayedExpansion
echo !m!

পাইপে আউটপুট দিতে, আমাদের সমস্ত ও এর পরিবর্তনশীল মানকে value & এর সাথে প্রতিস্থাপন করতে হবে, যা আমরা% VAR: FROM = TO% সিনট্যাক্স দিয়ে করতে পারি:

echo !m:^&=^^^&! | clip

কমান্ড লাইনে, "সেন্টিমিডি / ভি" বিলম্বিত প্রসারণ সক্ষম করে:

cmd /v /c echo !m!

পাইপে লেখার সময়ও এটি কাজ করে

cmd /v /c echo !m! | clip

সহজ।


পাইপগুলির জন্য আপনার সমাধান কাজ করে তবে আপনার সিদ্ধান্তগুলি কমবেশি ভুল। BTW। একটি সাধারণ echo this ^^^& that | clipকাজ। ম্যাজিক পাইপ হ্যান্ডলিং বোঝার জন্য আপনি এসও
jeb

1

আপনার যদি এমন echoএকটি স্ট্রিংয়ের প্রয়োজন হয় যাতে একটি অ্যাম্পারস্যান্ড থাকে, উদ্ধৃতিগুলি সাহায্য করবে না, কারণ আপনি এগুলি আউটপুটেও দেখতে পাবেন। এ জাতীয় ক্ষেত্রে, ব্যবহার করুন for:

for %a in ("First & Last") do echo %~a

... একটি ব্যাচের স্ক্রিপ্টে:

for %%a in ("First & Last") do echo %%~a

অথবা

for %%a in ("%~1") do echo %%~a

0

যদি ফাইলটির নামে আপনার ফাঁকা জায়গা থাকে এবং আপনার একটি অক্ষর থাকে তবে আপনাকে পালাতে হবে:

কমান্ডের কোনও ভুল নম্বর এড়াতে আপনি একক এবং ডাবল উদ্ধৃতি ব্যবহার করতে পারেন।

scp ./'files name with spaces/internal folder with spaces/"text & files stored.txt"' .

^চরিত্র অন্যথায় কোট পালাতে।

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