আপনি কীভাবে উইন্ডোজের PATH পরিবেশ পরিবর্তনশীলকে অতিরিক্ত জনবহুলতা এড়াতে পারবেন?


115

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

তাহলে আপনি কি সুপারিশ করবেন? অনেক দিন আগে, আমি পথের অন্তর্গত একটি দিরে এক্সিকিউটেবলের সফটলিঙ্কগুলি ব্যবহার করার চেষ্টা করেছি, কিন্তু এই পদ্ধতির কাজ হয়নি। "শুধুমাত্র এক্সিকিউটেবল" একটি পরিচিত ডিয়ারে ফেলে দিন, প্রায় কোনও অ্যাপ্লিকেশনটিতে ফাইলগুলির একটি সেট প্রয়োজন হয় এমন সমস্যা রয়েছে, সুতরাং এটিও খারাপ। এক্সিকিউটেবল এবং তার সমস্ত ফাইলকে একটি পরিচিত ডিয়ারে ফেলে দিন, মিমি এটি কাজ করবে, তবে ফাইলগুলির নামে দ্বন্দ্ব হওয়ার সম্ভাবনা খুব বেশি। একটি হার্ডলিঙ্ক তৈরি করবেন? আমি জানি না আপনি কি মনে করেন?


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

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

1
এই সরঞ্জামটি পাথগুলি সংকুচিত করবে। ফলাফল চিত্তাকর্ষক: uweraabe.de/Blog/2014/09/09/the-garbled-path-variable/#more-337
InNameOfScience

উত্তর:


84

আমি যে উপায়টির কথা ভাবতে পারি তা হ'ল আংশিক পাথ সংরক্ষণ করার জন্য অন্যান্য পরিবেশের ভেরিয়েবলগুলি ব্যবহার করা; উদাহরণস্বরূপ, যদি আপনার কাছে থাকে

C:\this_is_a\long_path\that_appears\in_multiple_places\subdir1;
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir2;

তারপরে আপনি যেমন একটি নতুন পরিবেশের পরিবর্তনশীল তৈরি করতে পারেন

SET P1=C:\this_is_a\long_path\that_appears\in_multiple_places

যার পরে আপনার আসল পথগুলি হয়ে যায়

%P1%\subdir1;
%P1%\subdir2;

সম্পাদনা: আরেকটি বিকল্প হ'ল একটি binডিরেক্টরি তৈরি .batকরা যা উপযুক্ত .exeফাইলগুলিকে নির্দেশ করে এমন ফাইল রাখে।

সম্পাদনা 2: অন্য উত্তরে বেন ভয়েগের মন্তব্য উল্লেখ করেছে যে প্রস্তাবিত অন্যান্য পরিবেশের ভেরিয়েবলগুলি ব্যবহারের দৈর্ঘ্য হ্রাস %PATH%পাবে না কারণ সেগুলি সংরক্ষণের আগে প্রসারিত হবে। এটি সত্য হতে পারে এবং আমি এটির জন্য পরীক্ষা করিনি। আর একটি বিকল্প যদিও দীর্ঘ ডিরেক্টরি নামের জন্য 8dot3 ফর্ম ব্যবহার করা হয়, উদাহরণস্বরূপ C:\Program Filesসাধারণত সমতুল্য C:\PROGRA~1। তুমি ব্যবহার করতে পারdir /xসংক্ষিপ্ত নামগুলি দেখতে করতে পারেন।

সম্পাদনা 3: এই সাধারণ পরীক্ষাটি আমাকে বেন ভয়েগট সঠিক বলে বিশ্বাস করতে পরিচালিত করে।

set test1=hello
set test2=%test1%hello
set test1=bye
echo %test2%

এর শেষে, আপনি আউটপুট দেখতে পাবেন hellohello চেয়েbyehello

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

@echo off

rem This batch file points to an executable of the same name
rem that is located in another directory. Specify the directory
rem here:

set actualdir=c:\this_is\an_example_path

rem You do not need to change anything that follows.

set actualfile=%0
set args=%1
:beginloop
if "%1" == "" goto endloop
shift
set args=%args% %1
goto beginloop
:endloop
%actualdir%\%actualfile% %args%

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

%actualdir%\%actualfile% %args%

সঙ্গে

echo %actualdir%\%actualfile% %args%

আদর্শভাবে আপনার প্রতিটি লাইনের চালানোর আগে ঠিক কী কাজ করা উচিত তা আপনার জানা উচিত।


1
8 ডিট 3 ফর্মটি ভাল কাজ করে, তবে ডিরেক্টরিগুলির জন্য প্রকৃতপক্ষে বড়টি খুব বেশি দুর্দান্ত নয়, উদাহরণস্বরূপ "সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও ২০০ SD এসডিকে \ ভিজ্যুয়ালস্টুডিয়ো ইন্টিগ্রেশন \ সরঞ্জামগুলি cast স্যান্ডক্যাসল \ প্রোডাকশনটুলস \"। আরেকটি জিনিস যা কিছুটা বাঁচায় তা হ'ল একজন ব্যবহারকারী হিসাবে আমি সিস্টেম প্যাথের ভিত্তিতে একটি PATH ভেরিয়েবল তৈরি করতে এবং অন্য কোনও ডিআর যুক্ত করতে পারি। এই সমস্ত পদ্ধতিরই "কমপ্যাক্ট সেই স্ট্রিং" ধরণের, তবে ইউনিক্সের মতো আমাদের কী বাইনারিগুলির একটি কেন্দ্রীয় ডিরেক্টরি থাকতে পারে?
এমজেএসআর

1
হুম, খুব দীর্ঘ ডিরেক্টরি সম্পর্কে, আমি মনে করি বিপরীতটি সত্য: দীর্ঘতর ডিরেক্টরি, আপনি 8dot3 ফর্ম্যাট ব্যবহার করে আরও অক্ষর সংরক্ষণ করবেন। যদি নেভিগেট করা কঠিন হয় তবে cmdনোট করুন যে আপনি *টাইপিং সংরক্ষণে ব্যবহার করতে পারেন । সুতরাং উদাহরণস্বরূপ, মূল থেকে, টাইপ করুন dir /x pro*। আপনি সেখানে আপনার পছন্দসই ডিরেক্টরিটি দেখতে পাবেন এটির 8 ডট 3 নামের সাথে। তারপরে cdএটিতে নেভিগেট করতে ব্যবহার করুন এবং প্রক্রিয়াটি পুনরাবৃত্তি করুন।
মিচ শোয়ার্জ

1
ইউনিক্স সম্পর্কিত, উইন্ডোজের $PATHসাথে আপনার যা একইরকম কাজ করে %PATH%, তাই আপনার বক্তব্যটি ঠিক কী তা আমি নিশ্চিত নই। কনভেনশন অনুসারে, ইউনিক্স ডিরেক্টরিগুলির নামগুলি উইন্ডোজের চেয়ে $PATHসংক্ষিপ্ত হতে থাকে এবং ফলস্বরূপ এটি আরও কম হয়।
মিচ শোয়ার্জ

2
ধন্যবাদ মিচ, আপনি যে সম্পাদনা 4 সরবরাহ করেছেন তা হ'ল আমি যা চাইছিলাম !, এখন আমার প্রয়োজনীয় সমস্ত বাইনারিগুলির সাথে আমার কেন্দ্রীভূত ফোল্ডার থাকতে পারে। আমি আরও কিছু পরীক্ষা করতে যাচ্ছি কিছু অ্যাপে সমস্যা আছে কিনা তা দেখার জন্য
mjsr

2
আপনার 'সম্পাদনা 4' বিভাগ এক্সিকিউটেবলের পক্ষে যুক্তিগুলি পাস করার জন্য অতিরিক্ত জটিল। মাইকেল বারারের উত্তর দেখুন।
ডেভ অ্যান্ডারসন

83

এটি আপনার% PATH% এনভায়রনমেন্ট ভেরিয়েবলকে বিশ্লেষণ করবে এবং প্রতিটি ডিরেক্টরিকে তার শর্টনামের সমতুল্যে রূপান্তর করবে এবং তারপরে এগুলি আবার একসাথে টুকরো টুকরো করবে:

@echo off

SET MyPath=%PATH%
echo %MyPath%
echo --

setlocal EnableDelayedExpansion

SET TempPath="%MyPath:;=";"%"
SET var=
FOR %%a IN (%TempPath%) DO (
    IF exist %%~sa (
        SET "var=!var!;%%~sa"
    ) ELSE (
        echo %%a does not exist
    )
)

echo --
echo !var:~1!

আউটপুট নিন এবং পরিবেশ ভেরিয়েবলগুলিতে PATH ভেরিয়েবল আপডেট করুন।


ধন্যবাদ যে খুব দরকারী ছিল !! এটি 1990 থেকে 1338 সাল পর্যন্ত আমার পথটি সংক্ষিপ্ত করে দিয়েছে এবং এখনও সমস্ত কিছুই কবজির মতো কাজ করে! আমি আপনার দৃষ্টিভঙ্গিটি বেছে নিয়েছি কারণ আমি সবকিছু আমার পথে রাখতে চেয়েছিলাম এবং ব্যাচের ফাইলগুলির সাথে সংযোগ করা খুব সময়সাপেক্ষ ছিল। ধন্যবাদ!
ndrizza

2
এটিও কার্যকর ছিল কারণ এটি আমার পথে আমার অস্তিত্বের সমস্ত ডিরেক্টরি সম্পর্কে বলেছিল যা সময়ের সাথে সাথে জমে ছিল।
নেট গ্লেন

27
এটি করার আরেকটি উপায় হল র‌্যাপিড এনভায়রনমেন্ট এডিটর। এটি অস্তিত্বহীন ডিরেক্টরিগুলি হাইলাইট করে এবং একটি বিকল্প "দীর্ঘ পথকে সংক্ষেপে রূপান্তর" করে।
রাসেল গ্যালাপ

3
@ রাসেল গ্যালাপ: স্যার, এটি একটি দুর্দান্ত সরঞ্জাম।
elo80ka

1
পরে অনুপস্থিত সমাপ্ত উদ্ধৃতি নোট করুন %%~sa। আমি উত্তরটি আপডেট করার চেষ্টা করেছি তবে আমি 6 অক্ষর পরিবর্তন না করলে তা আমাকে ছাড়তে দেয় না
zr870

28

যদি আপনি উইন্ডো ভিস্তা বা উচ্চতর ব্যবহার করে থাকেন তবে আপনি ফোল্ডারে একটি প্রতীকী লিঙ্ক তৈরি করতে পারেন। উদাহরণ স্বরূপ:

mklink /d C:\pf "C:\Program Files"

একটি লিঙ্ক তৈরি করে তাই c:\pfআপনার program filesফোল্ডার হবে। আমি এই কৌশলটি ব্যবহার করে আমার পথ থেকে 300 টি চরিত্রের ছাঁটাই করেছি।


আংশিক পথটি উপস্থাপন করতে পরিবেশের পরিবর্তনশীল ব্যবহারের জন্য এটি একটি দুর্দান্ত বিকল্প।
পোরকাস

1
এই হ 'ল আরও সাহায্য করবে, কিন্তু আপনি যদি একটি আরো "সঠিক" (সমর্থিত?) সমাধান চাই, আপনি দৃষ্টান্ত প্রতিস্থাপন করতে পারেন c:\Program Filesএবং c:\Program Files (x86)পূর্ব নির্ধারিত ভেরিয়েবল সঙ্গে %ProgramFiles%এবং %ProgramFiles(x86)% tenforums.com/tutorials/... এই মাত্র কয়েক অক্ষর সংরক্ষণ প্রতিটি তবে আপনি যদি পাঠ সর্বাধিক সর্বাধিক প্রসারিত করার পথে থাকেন তবে পার্থক্য হতে পারে। এই বিষয়ে, আমি% pf% এবং% পিএফএক্স% তৈরি করতে যাচ্ছি যা সঠিক পথগুলিতে সমাধান করে। ধারণার জন্য ধন্যবাদ! :)
রেইনবাবা

% Pf% এবং% pfx% এর মতো ভেরিয়েবলগুলি ব্যবহার করার ক্ষেত্রে সমস্যাটি হ'ল প্রতীকী লিঙ্কগুলি তৈরি করার মতোই সমস্যাগুলি পেয়েছেন - সফ্টওয়্যার আপডেটগুলি আবার পথ চলকগুলিতে জিনিসগুলি যুক্ত করতে পারে। এর মতো ভেরিয়েবল ব্যবহার করার ক্ষেত্রে অন্যান্য সমস্যাটি হ'ল এটি চারপাশের জিনিসগুলি স্ক্রিপ্ট করা বা এক্সপ্লোরার থেকে তাদের ব্রাউজ করা দ্রুত এবং সহজ নয়। আমি বর্ণিত পদ্ধতিটি ব্যবহার করে আপনি আক্ষরিক অর্থে সি: \ পিএফ খুলতে পারেন। উইন্ডোজ এটিকে ঠিক একটি ফোল্ডারের মতো দেখায় যাতে আপনি এর বিরুদ্ধে খুব সহজেই ব্যাট বা পাওয়ারশেল লিখতে পারেন।
bmg002

10

কারও আগ্রহের ক্ষেত্রে ...

আমি দেখতে পাচ্ছি যে সত্যিই একবারে all সমস্ত পাথের দরকার নেই, তাই আমি "আরম্ভকরণ" ব্যাচ ফাইলগুলির একটি গুচ্ছ তৈরি করি যা সেই অনুসারে পথটি পরিবর্তন করে।

উদাহরণস্বরূপ, আমি যদি একটিগ্রহে কিছু সি ++ বিকাশ করতে চাই, তবে আমি তা করতাম:

> initmingw
> initeclipse
> eclipse

একই নামের সাথে এক্সিকিউটেবলের মধ্যে দ্বন্দ্ব এড়ানোর পক্ষেও এটি কার্যকর (যেমন সি ++ এবং ডি সংকলক, যার উভয়ই মেক.এক্সই রয়েছে)।

আমার ব্যাচের ফাইলগুলি সাধারণত এ জাতীয় দেখাচ্ছে:

@echo off
set PATH=C:\Path\To\My\Stuff1;%PATH%
set PATH=C:\Path\To\My\Stuff2;%PATH%

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


7

আমাকে সাধারণত এ নিয়ে মাথা ঘামানোর দরকার নেই (আমি কোনও পাথ আকারের সীমাতে চলে যাইনি - আধুনিক উইন্ডোজ সিস্টেমগুলিতে এটি কী তা আমি জানি না) তবে প্রোগ্রামের ডিরেক্টরিটি এড়াতে আমি কী করতে পারি তা এখানে রয়েছে পথ:

  • বেশিরভাগ কমান্ড লাইন ইউটিলিটিগুলি c:\utilসেই ডিরেক্টরিতে ফেলে দেওয়া হয় যা পথে
  • অন্যথায়, আমি c:\utilডিরেক্টরিতে এমন একটি সাধারণ সিএমডি / ব্যাচ ফাইল যুক্ত করব যা দেখতে কিছুটা দেখতে:

    @"c:\program files\whereever\foo.exe" %*
    

যা কমান্ডের জন্য মূলত একটি উপনাম তৈরি করে। এটি অগত্যা নিখুঁত নয়। কিছু প্রোগ্রাম সত্যই পথে চলার জন্য জোর দিয়ে থাকে (এটি আজকাল বেশ বিরল), এবং অন্যান্য প্রোগ্রামগুলি যা এটি চালনার চেষ্টা করে তা সম্ভবত এটি সঠিকভাবে না খুঁজে পেতে পারে। তবে বেশিরভাগ ব্যবহারের জন্য এটি ভালভাবে কাজ করে।

তবে সাধারণত, আমাকে ডিরেক্টরিতে ডিরেক্টরি যুক্ত করা এড়িয়ে চলা উচিত নয়।


আপনি যখন এই "পথ" অনুসরণ করতে শুরু করেন, সাবধান হন যে কোনও ব্যাচের স্ক্রিপ্ট "কল" [ব্যাট] "সিনট্যাক্স ব্যতীত অন্য ব্যাচের স্ক্রিপ্টটিকে কল করতে পারে না। সুতরাং, আপনি যদি নিশ্চিত করতে চান যে আপনার ফরোয়ার্ড-বা-নয় এক্সিটি কোনও ব্যাট থেকে ডেকে আনা হয়েছে, কেবল "পিএইচপি স্ক্রিপ্ট.এফপি" (যা উভয় উপায়েই কাজ করে) এর পরিবর্তে "কল করুন পিএইচপি স্ক্রিপ্ট.এফপি" ব্যবহার করুন যা ব্যবহারের একটি দুর্দান্ত কারণ works ব্যাট প্রেরণকারী হ'ল PATH নামগুলির দ্বন্দ্ব (একই এক্সিমের বহু গুণ) প্রতিরোধ করা
131

@ ১৩১: 'এই "পথ" দ্বারা আপনার অর্থ কী তা বোঝাতে আপনি আপত্তি করবেন? আপনি উদাহরণ থেকে নির্দিষ্ট ফাইল পাথ বোঝাতে চান? না বরং এই উত্তর দ্বারা প্রস্তাবিত সাধারণ পদ্ধতি?
বা ম্যাপার

@ ওআমাপ্পার: যখন ১৩১ বলে, 'আপনি যখন এই "পথ" অনুসরণ করতে শুরু করেন, তখন তার অর্থ,' আপনি যখন এই কৌশলটি ব্যবহার করেন '।
মাইকেল বুড়

1
যেমনটি আপনি লিখেছেন, "অন্যান্য প্রোগ্রামগুলি যে এটি চাওয়ার চেষ্টা করে তা এটি সঠিকভাবে নাও খুঁজে পেতে পারে" - উদাহরণস্বরূপ: দুর্ভাগ্যক্রমে, এটি কমান্ড লাইন অ্যাপ্লিকেশনগুলিতে স্বয়ংক্রিয় কলগুলি ন্যান্টের মতো বিল্ড সরঞ্জামগুলির মাধ্যমে নিক্ষেপ করতে পারে course একটি প্রতিকার হ'ল একটি চাপ দেওয়া কমান্ডটি চাচ্ছে cmd /c, তবে এর পরিবর্তে বিল্ড স্ক্রিপ্টটি উইন্ডোজ-নির্দিষ্ট হয়ে যায়: / আমি আলাদা প্রশ্নে সে সম্পর্কে জিজ্ঞাসা করেছি ।
বা ম্যাপার

5

আর একটি ধারণা: ডিআইআর / এক্স ব্যবহার করুন অ-8 ডট 3 ফাইলের নামের জন্য উত্পন্ন সংক্ষিপ্ত নামগুলি নির্ধারণ করতে। তারপরে আপনার% PATH% এ ব্যবহার করুন।

উদাহরণস্বরূপ, 'সি: \ প্রোগ্রাম ফাইলগুলি' 'সি: \ প্রোগ্রামার ~ 1' হয়ে যায়।


1
ওফস, আমি ঠিক বুঝতে পেরেছি এটি ইতিমধ্যে @ মিচ দ্বারা প্রস্তাবিত হয়েছিল। আমি তার জন্য তাকে একটি +1 দিচ্ছি। :)
অ্যান্ড্রয়েড ইভ


2

আমি প্রতিবারের ভিত্তিতে একটি স্ট্যান্ডার্ড স্ট্রিম লিখেছি এবং ব্যবহার করি (স্টিডিন / স্ট্ডার / স্টাডআউট) এবং প্রস্থান কোড প্রক্স প্রোগ্রাম (প্রেরণকারী https://github.com/131/dispatcher )

আমি যে সমস্ত সিএলআই প্রোগ্রাম ব্যবহার করি (নোড, পিএইচপি, পাইথন, গিট, এসএনএন, আরসিএনসি, প্লিংক ...) আমি আসলে একই এক্সি ফাইল (প্রায় 10 কেবি, আমি কেবল আলাদাভাবে নাম রাখি), যা আমি একই রেখেছি ডিরেক্টরি। একটি ডামি স্ট্যাটিক ক্লিয়ার টেক্সট ফাইল "প্রক্সি ফাইলের নাম থেকে রিয়েল এক্সি ম্যাপিং" করে।

বিচ্ছিন্নভাবে স্বচ্ছ হতে প্রেরণকারী নিম্ন স্তরের প্রক্রিয়া পরিচালনা win32 এপিআই ব্যবহার করে।

এই সফ্টওয়্যারটি ব্যবহার করে, আমি ব্যবহার করতে পারি এমন সমস্ত প্রোগ্রামের জন্য আমার পাঠ্যপুস্তকে কেবলমাত্র একটি অতিরিক্ত ডিরেক্টরি সেট আছে।


1

ফোল্ডার তৈরি করা সি: \ বিন আপনার পথে যুক্ত করা এবং হার্ডলিঙ্কিং যেমন আপনি বলেছেন স্ট্রিংটি সংক্ষিপ্ত করতে পারে। হতে পারে মান সহ সিস্টেম ভার্সে একটি ভেরিয়েবল পিএফ যুক্ত করুন সি: \ প্রোগ্রাম ফাইলগুলি সি: \ প্রোগ্রাম ফাইলগুলিকে% পিএফ% দিয়ে পথে প্রতিস্থাপন করবে।

সম্পাদনা:

ভার্চুয়াল ড্রাইভ তৈরি করুন। সাব পি: "সি: \ প্রোগ্রাম ফাইল"


1
আমি মনে করি যে পথটিতে প্রসারিত ভেরিয়েবল থাকবে, সেক্ষেত্রে এটি কোনও সংক্ষিপ্ততর না পায়।
বেন ভয়েগট

0

আমি এন্ট্রি পরিচালনাযোগ্য করতে এই পদক্ষেপগুলি অনুসরণ:

  1. বিভিন্ন সফ্টওয়্যার প্যাকেজ ব্যবহারের সংমিশ্রণের জন্য বিভিন্ন ব্যবহারকারী তৈরি করেছেন। উদাহরণ: (ক) সমস্ত ওয়েব বিকাশ সফ্টওয়্যার উপলব্ধ করার জন্য একটি ব্যবহারকারী ওয়েব তৈরি করেছে; (খ) সমস্ত ডাটাবেস এবং ডেটা গুদাম সফ্টওয়্যার প্যাকেজ উপলব্ধ করার জন্য একটি ব্যবহারকারী ডাটাবেস তৈরি করেছে। মনে রাখবেন কিছু সফ্টওয়্যার একাধিক এন্ট্রি তৈরি করতে পারে। বা একসময় আমি এটি ওরাকল নির্দিষ্ট এবং এমএসএসকিউএল নির্দিষ্ট এবং ওরাকল নির্দিষ্ট ব্যবহারকারীদের মধ্যে বিভক্ত করি। আমি মাইএসকিউএল / পোস্টগ্র্রেএসকিউএল, টমক্যাট, মোড়, জ্যাম্প সবই ব্যবহারকারীর অ্যাকাউন্টে রেখেছি we

  2. যদি সম্ভব হয় তবে সাধারণ ব্যবহারযোগ্য প্যাকেজগুলি যেমন অফিস, ফটোশপ, .. সমস্ত ব্যবহারকারীদের জন্য সিস্টেম নির্দিষ্ট হিসাবে এবং ব্যবহারকারী নির্দিষ্ট হিসাবে বিশেষ প্যাকেজ ইনস্টল করুন। অবশ্যই আমাকে বিভিন্ন ব্যবহারকারীদের মধ্যে লগইন করতে হয়েছিল এবং সেগুলি ইনস্টল করতে হয়েছিল। সমস্ত সফ্টওয়্যার এই বিকল্পটি দিতে পারে না। যদি "কেবলমাত্র এই ব্যবহারকারীর জন্য ইনস্টল করুন" বিকল্পটি উপলব্ধ না হয় তবে এটি পুরো সিস্টেমের জন্য ইনস্টল করুন।

  3. আমি প্রোগ্রাম ফোল্ডারে প্রোগ্রাম ফাইল (x86) বা প্রোগ্রাম ফাইলে প্রোগ্রাম ইনস্টল করা এড়াতে চাই। আমি সর্বদা বেস ডিরেক্টরিতে ইনস্টল করি। উদাহরণস্বরূপ, মাইএসকিউএল 64 বিট "সি: \ mysql64" এ যায় এবং মাইএসকিউএল 32 বিট "সি: q মাইএসকিএল" ফোল্ডারে যায়। আমি সবসময় কেবলমাত্র 64 বিবিট সফ্টওয়্যারটির জন্য একটি প্রত্যয় 64 যুক্ত করে ধরে নিই। যদি প্রত্যয় না হয় তবে এটি 32 বিট। আমি জাভা এবং অন্যদের কাছে একই জিনিস অনুসরণ করি। এইভাবে আমার পথটি ছোট হবে, "সি: \ প্রোগ্রাম ফাইল (x86)" সহ নয়। কিছু সফ্টওয়্যারের জন্য .exe ফাইলটি ঠিক কোথায় রয়েছে তা প্রদর্শনের জন্য কনফিগারেশন ফাইলটিকে সম্পাদনা করতে হবে। কেবলমাত্র যে প্রোগ্রাম "সি: \ প্রোগ্রাম ফাইল (x86)" এ ইনস্টল করার দাবি করে সেই ফোল্ডারে ইনস্টল করা হবে। নামগুলি ছোট করা সবসময় মনে আছে। আমি টমকাট / রিলিজ / সংস্করণ -২.০.০.৩ এর মতো সংস্করণ নম্বর এড়াতে চাই। আমার যদি সংস্করণটি জানার দরকার হয়, আমি নাম সংস্করণ অনুসারে একটি ফাইল তৈরি করেছি এবং এটি টমক্যাট ফোল্ডারে রেখেছি। সাধারণভাবে যতটা সম্ভব লিঙ্কটি ছোট করুন।

  4. উপরের সমস্ত পদক্ষেপগুলি যদি উইন্ডোজ সীমাটি অতিক্রম করে, তবে পথে সংক্ষিপ্ত লিঙ্কটি প্রতিস্থাপন করতে কোনও ব্যাচ অন্তর্ভুক্ত করুন।

তারপরে ব্যবহার নির্দিষ্ট (মোবাইল অ্যাপ্লিকেশন, বা ডাটাবেস / ডেটা গুদামজাতকরণ বা ওয়েব-বিকাশ .. ..) ব্যবহার করে লগ ইন করুন এবং প্রাসঙ্গিক কাজগুলি করুন।

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


0

উপরের সমাধানগুলি কেবল তখনই কাজ করে যদি আপনি নিজের পথটি ছাঁটাই করতে পারেন। আমার ক্ষেত্রে, এটি আসলে একটি বিকল্প ছিল না, এবং প্রতিবার আমি কমান্ড প্রম্পট খোলার সাথে সাথে স্ক্রিপ্ট চালানো সমস্যা ছিল। সুতরাং আমি একটি সাধারণ স্ক্রিপ্ট লিখেছিলাম যা কমান্ড প্রম্পটটি খোলার সময় স্বয়ংক্রিয়ভাবে চলে এবং আপনার পাঠ্যে কোনও পাঠ্য ফাইলের সামগ্রী যুক্ত করে app

এছাড়াও কিছু প্রসঙ্গ রয়েছে যেখানে এই স্ক্রিপ্টটি চালানো জিনিসগুলি বিরতি দেয় (বলুন, একটি গিথুব বা সাইগউইন শেলের মধ্যে), সুতরাং আমি এমন একটি ফাইলও যুক্ত করেছি যাতে পাথের একটি তালিকা রয়েছে যা যদি কমান্ড প্রম্পট তাদের মধ্যে শুরু করা হয়, তবে পাথ ভেরিয়েবল আইএনএস নেই path প্রারম্ভিক স্ক্রিপ্টের মাধ্যমে পরিবর্তিত হয় না যা সাধারণত পথ আপডেট করে।

@echo off

:: Modify these to the actual paths of these two files
set dontSetupFile=C:\Users\Yams\Dontsetup.txt
set pathFile=C:\Users\Yams\Path.txt

:: Retrieve the current path (for determining whether or not we should append to our path)
set curDir=%cd%

:: Be done if the current path is listed in the dontSetupFile
SetLocal EnableDelayedExpansion
for /F "delims=" %%i in (%dontSetupFile%) do (
    if "%%i"=="%curDir%" GOTO AllDone
)



:: Append the pathFile to our current PATH
set pathAppend=
for /F "delims=" %%i in (%pathFile%) do (set pathAppend=!pathAppend!%%i)

set PATH=%PATH%;%pathAppend%


:: The only way to actually modify a command prompt's path via a batch file is by starting
::   up another command prompt window. So we will do this, however, if this script is
::   automatically called on startup of any command prompt window, it will infinately 
::   recurse and bad things will happen.

:: If we already ran, we are done
if "%yams%"=="onion" GOTO AllDone

:: Otherwise, flag that we just ran, and then start up a new command prompt window
::   with this flag set
set yams=onion

cmd \K set PATH=%PATH%;

:: When that command prompt exits, it will load back up this command prompt window, and
::   then the user will need to exit out of this as well. This causes this window to
::   automatically exit once the cmd it just spawned is closed.
exit()

:: Path is set up, we are done!
:AllDone
@echo on

এবং Path.txt এর মত কিছু হবে

C:\Program Files (x86)\Google\google_appengine;
C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
C:\Program Files\Microsoft SQL Server\110\Tools\Binn;
C:\Program Files\Microsoft DNX\Dnvm;
C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit;

Dontsetup.txt এর মতো দেখতে কিছু হবে

C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit
C:\Program Files (x86)\Git\cmd
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

স্টার্টআপ এ স্বয়ংক্রিয়ভাবে রান করার জন্য, রিজেডিট খুলুন, HKEY_LOCAL_MACHINE / সফটওয়্যার / মাইক্রোসফ্ট / কমান্ড প্রসেসর এ নেভিগেট করুন, তারপরে ডানদিকে ডান ক্লিক করুন এবং নতুন -> মাল্টি-স্ট্রিং মানটি টিপুন। এর নাম রাখুন অটোরান। এটির মান সেট করুন

C:\Users\Yams\setUpPath.bat

বা অন্য যে কোনও জায়গায় আপনি উপরের ব্যাচ ফাইলটি সঞ্চয় করেছেন।


0

এটি চেষ্টা করে দেখেনি, তবে ভাগের কাজগুলিতে PATH ভাগ করে চূড়ান্ত পরিবর্তনশীল কাজে তাদের যোগদান করবে?

উদাহরণস্বরূপ প্রাথমিকভাবে বলা যাক আপনার মতো কিছু আছে

PATH={LONGPATH1};{LONGPATH2};....{2048th char}....{LONGPATH_N-1};{LONGPATH_N}

পরিবর্তে আপনি তৈরি:

_PATH1 = {LONGPATH1};{LONGPATH2};....{2048 char}
_PATH2 = {2049th char}...{LONGPATH_N-1};{LONGPATH_N}
rem // may be more parts
PATH = %_PATH1%;%_PATH2%
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.