উইন্ডোজ শেল কমান্ড দিয়ে বর্তমান ডিরেক্টরীটির পুরো পথ পাবে?


223

উইন্ডোজ কমান্ড লাইন কমান্ডটি কি আমি বর্তমান কার্যকরী ডিরেক্টরিটির পুরো পথটি পেতে ব্যবহার করতে পারি?

এছাড়াও, আমি কীভাবে ব্যাচ ফাইলে ব্যবহৃত ভেরিয়েবলের মধ্যে এই পাথটি সংরক্ষণ করতে পারি?


সন্ধান / দির / থেকে / শুরু / থেকে-টাইপ এফ-এলএস এই ফর্ম্যাটটি সংখ্যার ফাইন্ড / ডির / টু / স্টার্ট / থেকে-টাইপ এফ-এক্সেক এলএস-এল - টাইম-স্টাইল = "+% ওয়াই% মি% e% এইচ:% এম "{} \;

এই উত্তরটি দেখুন stackoverflow.com/a/52301748/2704032
বিশ্রান্ত

উত্তর:


356

ব্যবহারের cdকোন যুক্তি দিয়ে আপনি শেল সরাসরি ব্যবহার করছেন, বা %cd%আপনি যদি একটি ব্যাচ ফাইল এটি ব্যবহার করতে চান তাহলে (এটা একটা পরিবেশে পরিবর্তনশীল মত আচরণ)।


11
কিভাবে হয়নি তুমি বুঝতে কি তিনি থেকে বলার চেষ্টা হয়েছিল যে ? এবং, ডস এবং উইন্ডোজ সেন্টিমিডির অধীনে, এটি সাধারণত "সিডি" থাকে
রুক

10
সত্য, আমি অন্য কিছু জিজ্ঞাসা করতে পারি না তারা প্রশ্নটি যেমনটি চেয়েছিল জিজ্ঞাসা করার চেষ্টা করছে।
ট্র্যাভর ব্র্যাম্বল

1
আমি কি এই পাথটিকে একটি .bat ফাইলের মধ্যে একটি ভেরিয়েবলের ভিতরে রাখতে পারি?
ব্যবহারকারী 62958

@ অজানা - আপনি প্রথমে মূল সমস্যাটি বর্ণনা করে ভাল হতে পারেন।
রুক

100

আপনি নিম্নলিখিত হিসাবে একটি ব্যাচ / পরিবেশ পরিবর্তনশীল সেট করতে পারেন:

SET var=%cd%
ECHO %var%

একটি উইন্ডোজ 7 x64 সেমিডি.এক্সে থেকে নমুনার স্ক্রিনশট।

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

আপডেট: আপনি যদি এরSET var = %cd%পরিবর্তে কিছু করেন তবেSET var=%cd%নীচে যা ঘটে। জেবকে ধন্যবাদ

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

একটি ব্যাচ ফাইল থেকে বর্তমান ডিরেক্টরি ক্যাপচার করা হচ্ছে


2
প্রশ্ন অনুসারে, এই উত্তরটি আসলে গ্রহণযোগ্য হওয়া উচিত।
রেনি নেইফেনিগার

7
কিন্তু এটা হিসাবে কাজ না করে, SET var = %cd%পরিবর্তনশীল মান করা var<space>মধ্যে না var। আপনি সেট কমান্ড মধ্যে শূণ্যস্থান এড়িয়ে চলা উচিত
Jeb

1
প্রশ্ন অনুসারে, এই উত্তরটি আসলে গ্রহণযোগ্য হওয়া উচিত।
শ্রীদত্ত কোঠারি

51

setকমান্ডটির জন্য উইন্ডোজ সহায়তাটি উদ্ধৃত করুন ( set /?):

যদি কমান্ড এক্সটেনশানগুলি সক্ষম হয়, তবে বেশ কয়েকটি গতিশীল রয়েছে
পরিবেশের পরিবর্তনশীল যা প্রসারিত হতে পারে তবে যা প্রদর্শিত হয় না
এসইটি দ্বারা প্রদর্শিত ভেরিয়েবলের তালিকা। এই পরিবর্তনশীল মান হয়
প্রতিটি সময় পরিবর্তনশীল এর মান প্রসারিত গতিযুক্ত।
যদি ব্যবহারকারী স্পষ্টভাবে এই নামের একটির সাথে একটি ভেরিয়েবল সংজ্ঞায়িত করে, তবে
এই সংজ্ঞাটি নীচে বর্ণিত গতিশীলটিকে ওভাররাইড করবে:

% সিডি% - বর্তমান ডিরেক্টরি স্ট্রিংয়ে প্রসারিত।

% DATE% - DATE কমান্ড হিসাবে একই ফর্ম্যাট ব্যবহার করে বর্তমান তারিখে প্রসারিত হয়।

% TIME% - টি টাইম কমান্ড হিসাবে একই ফর্ম্যাট ব্যবহার করে বর্তমান সময়ে প্রসারিত।

% RANDOM% - 0 এবং 32767 এর মধ্যে একটি এলোমেলো দশমিক সংখ্যায় প্রসারিত।

% ERRORLEVEL% - বর্তমান ERRORLEVEL মানটিতে প্রসারিত

% সিএমডেক্সটভিশন% - বর্তমান কমান্ড প্রসেসর এক্সটেনশনে প্রসারিত
    সংস্করণ সংখ্যা.

% সিএমডিসিএমডলাইন% - মূল কমান্ড লাইনে প্রসারিত যা প্রেরণ করেছিল
    কমান্ড প্রসেসর।

%CD% - expands to the current directory string.অংশটি নোট করুন ।


26

ইউনিক্সে?

PWD


2
ওপি মূলত একটি "কমান্ড" চেয়েছিল এবং ওএস নির্দিষ্ট করে নি। ওএস এখন নির্দিষ্ট করা হয়েছে সুতরাং এই উত্তরটি আর প্রাসঙ্গিক নয়।
তিশ্চ

18

উইন্ডোজ জন্য আমরা ব্যবহার করতে পারেন

cd

এবং লিনাক্সের জন্য

pwd

কমান্ড আছে।


17

এটি সর্বদা আমার পক্ষে কাজ করেছে:

SET CurrentDir="%~dp0"

ECHO The current file path this bat file is executing in is the following:

ECHO %CurrentDir%

Pause

2
এটি ভুল কাজ করে - ব্যাচ স্ক্রিপ্টের পথ সন্ধান করে, বর্তমান ডিরেক্টরিটি নয়।
হ্যারি জনস্টন

2
ওপির প্রশ্নের উত্তর দেওয়ার কারণে উত্সাহিত ... এবং আমি যে সঠিক সমাধানটি সন্ধান করছিলাম তা দেওয়ার জন্য। ধন্যবাদ!
এ-ডিডি

সুন্দর ক্যাচ. বর্তমান ডিরেক্টরিটি সেই কমান্ডকে উল্লেখ করতে পারে যা ফাইলের নিজের অবস্থানের পরিবর্তে ফাইলটি কল করে।
ট্যাম লে

9

উইন্ডোজের জন্য, cd নিজেই আপনাকে বর্তমান ওয়ার্কিং ডিরেক্টরিটি প্রদর্শন করবে।

ইউনিক্স এবং ওয়ার্কালাইক সিস্টেমগুলির জন্য, pwdএকই কাজটি সম্পাদন করবে। আপনি $PWDকয়েকটি শেলের নীচে শেল পরিবর্তনশীলও ব্যবহার করতে পারেন । আমি নিশ্চিত নই যে উইন্ডোজ শেল ভেরিয়েবলের মাধ্যমে বর্তমানের ওয়ার্কিং ডিরেক্টরিটি পেতে সহায়তা করে কিনা।


তবে তার বর্তমান দির দেখতে কেন তাকে "সিডি" দরকার তা আমি বুঝতে পারি না। ডিফল্টরূপে, এটি দিন হিসাবে দৃশ্যমান। এবং যদি সে এটি পরিবর্তন করে থাকে তবে "সিডি" কী করে তা অবশ্যই তিনি জানেন।
রুক

খুব পুরানো, তবে কেবল সম্পূর্ণতার জন্য: হ্যাঁ, উইন্ডোগুলির এটির জন্য একটি পরিবর্তনীয় রয়েছে। এর নাম দেওয়া হয়েছে (অনুমান ...)%cd%
স্টিফান

8

উইন্ডোজে:

CHDIR বর্তমান ডিরেক্টরিটির নাম প্রদর্শন করে বা পরিবর্তন করে।

লিনাক্সে:

PWD বর্তমান ডিরেক্টরিটির নাম প্রদর্শন করে।


5

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

মূল ব্যবহারকারীর "পুশড" দিকে নজর দেওয়া উচিত, যা ডিরেক্টরি পরিবর্তন করে এবং বর্তমানটিকে একটি স্ট্যাকের দিকে ঠেলে দেয় যা "পপড" দিয়ে পুনরুদ্ধার করা যায়। ব্যাচ ফাইলগুলি তৈরি করার সময় যে কোনও আধুনিক উইন্ডোজ সেন্টিমিডি শেলটি যাবার উপায়।

যদি আপনাকে সত্যিকারের বর্তমান পথটি ধরতে হয় তবে আধুনিক সেন্টিমিডি শেলগুলির একটি% সিডি% ভেরিয়েবলও রয়েছে যা আপনি সহজেই রেফারেন্সের জন্য অন্য ভেরিয়েবলে স্টাফ করতে পারবেন।


5

এর .batঅধীনে একটি ফাইল তৈরি করুন System32, আসুন copypath.batবর্তমান পাতাগুলি অনুলিপি করার আদেশটি এর নাম হতে পারে :

echo %cd% | clip

ব্যাখ্যা:

%cd% আপনাকে বর্তমানের পথ দেবে

CLIP

Description:
    Redirects output of command line tools to the Windows clipboard.
    This text output can then be pasted into other programs.

Parameter List:
    /?                  Displays this help message.

Examples:
    DIR | CLIP          Places a copy of the current directory
                        listing into the Windows clipboard.

    CLIP < README.TXT   Places a copy of the text from readme.txt
                        on to the Windows clipboard.

এখন copyclipসর্বত্র থেকে উপলব্ধ।


3
@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%

তবে অবশ্যই gmaran23 এর উত্তরটি অনেক সহজ।


তার উত্তর সংজ্ঞা দিয়ে আরও ভাল কারণ আপনার উত্তরটি ভুল। এটি স্পেস সহ পাথের জন্য কাজ করে না।
গ্যারিক

tokens=*সংশোধন করা হচ্ছে যে।
রেনি নিফেনিগার

2

উইন্ডোজ কমান্ড প্রম্পটে, chdirবাcd কনসোলে বর্তমান ওয়ার্কিং ডিরেক্টরিের পুরো পথটি মুদ্রণ করবে।

আমরা পথ অনুলিপি করতে চান, তাহলে আমরা ব্যবহার করতে পারেন: cd | clip


0

উইন্ডোজ টাইপ করুন cd চলমান পাথের জন্য ।

লিনাক্সে, pwdবর্তমান কার্যপথের জন্য।


5
একই সমাধান সহ ইতিমধ্যে 10 টি উত্তর রয়েছে, তবে আরও ব্যাখ্যা
জেব

0

সম্ভাব্য কোডগুলির মধ্যে একটি হিসাবে

    echo off
    for /f "usebackq tokens=* delims= " %%x in (`chdir`) do set var=%var% %%x
    echo The current directory is: "%var:~1%"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.