কমান্ড প্রম্পট - কেবলমাত্র সেই ব্যাচের ফাইল কার্যকর করার জন্য একটি সেট পাথ কীভাবে যুক্ত করবেন?


186

মূলত, আমি জানি আমি আমার নিয়ন্ত্রণ প্যানেলটি দিয়ে যেতে পারি এবং পাথের ভেরিয়েবলটি সংশোধন করতে পারি। তবে, আমি ভাবছি যে ব্যাচের প্রোগ্রামিংয়ের মাধ্যমে কোনও অস্থায়ী পথ অন্তর্ভুক্ত আছে কি? এই ব্যাচ ফাইল প্রয়োগের সময় এটি কেবল ব্যবহৃত হয়। আমি চাই না যে লোকেরা কেবল আমার ব্যাচের ফাইলটি ব্যবহার করার জন্য তাদের পাথ ভেরিয়েবলগুলিতে প্রবেশ করতে এবং তাদের পথ পরিবর্তন করতে পারে।

উত্তর:


317

ঠিক তেমন অন্যান্য পরিবেশের পরিবর্তনশীলগুলির মতো SET:

SET PATH=%PATH%;c:\whatever\else

আপনি যদি প্রথমে কিছুটা সুরক্ষা চেক তৈরি করতে চান তবে নতুন পথটি প্রথমে রয়েছে কিনা তা পরীক্ষা করে দেখুন:

IF EXIST c:\whatever\else SET PATH=%PATH%;c:\whatever\else

আপনি যদি সেই ব্যাচের ফাইলে স্থানীয় হতে চান তবে ব্যবহার করুন setlocal:

setlocal
set PATH=...
set OTHERTHING=...

@REM Rest of your script

setlocal/ এর জন্য দস্তাবেজগুলি সাবধানতার সাথে পড়ুন endlocalএবং সেই সাইটের অন্যান্য উল্লেখগুলি দেখুন have ফাংশনগুলিও বেশ আকর্ষণীয় এবং বাক্য গঠনটি জটিল।

সিনট্যাক্স আপনি যে পৃষ্ঠাটি বুনিয়াদি দিয়ে শুরু করতে হবে।


3
আপনি যদি setlocalআপনার ব্যাচের ফাইলে একটি যোগ করেন , তবে পাথটি কেবল ফাইলটিতেই দৃশ্যমান
jeb

আপনি "সেটলোকাল" যুক্ত করবেন? এটি কি "এসইটি" এর জায়গায় রয়েছে?
মাইকেল 25

@ মেশিয়াল: লিঙ্কগুলি সহ আমার উত্তর আপডেট করেছে। দয়া করে সেমিডি স্ক্রিপ্টিং সম্পর্কে কিছু ডকুমেন্টেশন / উদাহরণ / টিউটোরিয়াল পড়ুন - SETসত্যিই এমন কিছু যা আপনার কোনও স্ক্রিপ্টিং করার আগে আপনার জানা এবং বোঝা উচিত।
মাদুর

2
জীবন রক্ষাকারী আমার একটি সার্ভারে একটি ইভি যুক্ত করা দরকার যা পুনরায় আরম্ভ করা যায়নি এবং এটি পুনরায় আরম্ভের সময়সূচি ছাড়াই আমার যা প্রয়োজন তা করতে দেয়!
ডেভ_আই

8
এমনকি এটি SETLOCALনা করে, সর্বাধিক, কেবলমাত্র সেই স্বতন্ত্র কমান্ড প্রম্পট সেশনের জন্য হতে চলেছে - আপনি যদি একাধিক ব্যাচের ফাইল থেকে এটি করছেন এবং ব্যবহার করছেন EXIT /B %N%, তবে SETLOCALস্ক্রিপ্টটি প্রস্থান করার সময় মূলত আপনার পরিবর্তনগুলি ডাম্প করতে চলেছে। : - /
BrainSlugs83

21

একটি গুরুত্বপূর্ণ বিশদ রয়েছে:

set PATH="C:\linutils;C:\wingit\bin;%PATH%"

কাজ করে না, যখন

set PATH=C:\linutils;C:\wingit\bin;%PATH%

কাজ করে। পার্থক্যটি হল কোট!

ইউপিডিও ভেনিমাসের মন্তব্য দেখে


3
প্রকৃতপক্ষে এটি হওয়া উচিত SET "PATH=...%PATH%"অন্য পথে ফাঁকা স্থানগুলি ত্রুটি বা দুর্ব্যবহারের কারণ হতে পারে। এই জাতীয় উক্তি মোড়ানো এগুলি অন্তর্ভুক্ত করবে না তবে সঠিকভাবে ভেরিয়েবল সেট করবে। একই অন্য কোনও এনভির ভেরিয়েবলের জন্য কাজ করে।
ভিনিমাস

20

এটি সঠিক, তবে এটি স্থায়ীভাবে পরিবর্তন করে না, তবে কেবল বর্তমান কমান্ড প্রম্পটের জন্য, আপনি যদি স্থায়ীভাবে এটি পরিবর্তন করতে চান তবে আপনাকে উদাহরণস্বরূপ এটি ব্যবহার করতে হবে:

setx ENV_VAR_NAME "DESIRED_PATH" /m

এটি এটি স্থায়ীভাবে পরিবর্তন করবে এবং হ্যাঁ আপনি এটি অন্য ব্যাচের স্ক্রিপ্ট দ্বারা ওভাররাইট করতে পারেন।


হয়তো /mপরে হতে হবে setx?
সুজনশখ্যা

আমার জন্য একই কাজ করে, তবে এই উইন ব্যাচের স্ক্রিপ্টিং এমএস থেকে অসম্পূর্ণ ব্যবসা নয়। আমার সংস্থায় যেখানে আমাদের একই সিস্টেমের সাথে একই রকমের সমস্ত ল্যাপটপ রয়েছে সেখানে পাঠ্য সেটিংয়ের জন্য কোনও সার্বজনীন স্ক্রিপ্ট নেই এবং আমরা এর মধ্যে 2 বা 3 রক্ষণাবেক্ষণ করছি, সুতরাং আপনার জন্য যা কিছু কাজ করবে :)
ডুম্বাক

আপডেটের জন্য ধন্যবাদ. উইন্ডোজ সার্ভার ২০১২-এ, যখন আমি /mশেষে রেখেছি , DESIRED_PATHকেবলমাত্র বর্তমান ব্যবহারকারীর জন্য / এমটি শেষে যুক্ত করা হয়েছিল।
সুজনকাশ্য

11
সাবধানতা একটি শব্দ। সেটাকে একটি পথে ব্যবহার করে এর সাথে আরও যুক্ত করার চেষ্টা করা হয়েছে এবং স্ট্রিংটি> 1024 দীর্ঘ, আমি আবিষ্কার করেছি যে ফলাফলটি (আমার পরিবেশের PATH) স্থায়ীভাবে কাটা হয়েছে। (একটি ভাল জিনিস যা আমি পরিবর্তিত হওয়ার আগে আমি% PATH% অনুলিপি করতে পেরেছিলাম এবং পরিবেশ পরিবর্তনশীল উইন্ডোজ সরঞ্জামটি ব্যবহার করে এটি ফিরিয়ে দিতে পারি))
আন্দ্রেস জ্যানসন

মনোযোগ! এই আদেশটি সরাসরি সিস্টেম এনভায়রনমেন্ট ভেরিয়েবলকে ওভাররাইট করে! আমি এগুলি মুছে ফেলেছি এবং তাদের ঠিক করার চেষ্টা করেছি। এবং যে কেউ এই ভুলটি করেছে তার জন্যও: আপনার কম্পিউটার পুনরায় আরম্ভ করবেন না। লিখুন echo %path%এবং আপনি বর্তমান বোঝা পথ পাবেন। আপনাকে ব্যবহারকারী এবং সিস্টেম পরিবেশের ভেরিয়েবলগুলি একে অপরের থেকে আলাদা করতে হবে। তারপরে আপনি এগুলি ম্যানুয়ালি সঠিক জায়গায় প্রয়োগ করতে পারেন।
অ্যালপার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.