ব্যাচ ফাইলের বর্তমান ডিরেক্টরিটি কী?


510

একটি প্রোগ্রাম স্বয়ংক্রিয় করতে আমি কয়েকটি ব্যাচের ফাইল তৈরি করতে চাই।

আমার প্রশ্নটি আমি যখন ব্যাচ ফাইলটি তৈরি করি তখন বর্তমান ডিরেক্টরিটি কী? ফাইলটি যেখানে রয়েছে সেই ডিরেক্টরিটিই কি এটি একই ডিরেক্টরি যা কমান্ড প্রম্পটে প্রদর্শিত হয় বা অন্য কিছু?

উত্তর:


1025

আপনার ব্যাচের ফাইলের মধ্যে থেকে:

  • %cd%বর্তমান ওয়ার্কিং ডিরেক্টরি (পরিবর্তনশীল) বোঝায়
  • %~dp0 ব্যাচ ফাইলের ডিরেক্টরিতে সম্পূর্ণ পথ নির্দেশ করে (স্থিতিশীল)
  • %~dpnx0এবং %~f0উভয়ই ব্যাচ ডিরেক্টরি এবং ফাইলের নাম (স্ট্যাটিক) এর পুরো পথ নির্দেশ করে।

আরও দেখুন: % ~ dp0 এর অর্থ কী এবং এটি কীভাবে কাজ করে?


5
@ Јοеу - %0বর্তমান সাবরুটিন নাম দিতে পারে, কিন্তু %~dp0হবে সবসময় নির্বাহ ব্যাচ ফাইলের সম্পূর্ণ পাথ দিতে।
dbenham

77
আসলে, দেখে মনে হচ্ছে%% dp0 এক্সিকিউটিভ ব্যাচ ফাইলের মধ্যে থাকা ডিরেক্টরিটিকে পুরো পথ দেয় %% ~ dpnx0 (যা% ~ f0 এর সমতুল্য) ব্যাচ ফাইলটির পুরো পথ দেয়। আরও তথ্যের জন্য robvenderwoude.com /paraters.php দেখুন ।
মারাত্মক ডগ

6
একটি অনুরূপ প্রশ্নের ভাল বিস্তারিত উত্তরও দেখুন: উইন্ডোজ ব্যাচ স্ক্রিপ্ট (.bat) এ পাস হওয়া আর্গুমেন্টের তালিকা পান
অলিব্রে

1
দুর্ভাগ্যক্রমে যখন .net% ~ dp0 থেকে একটি প্রক্রিয়া হিসাবে চালানো হ'ল কার্য ডিরেক্টরি হ'ল ব্যাচ ফাইল ডিরেক্টরি নয়, এটি হার্ড উপায় খুঁজে পেয়েছিল।
ট্রাম্পস্টার

3
আরও সুস্পষ্ট উদাহরণ হিসাবে, যখন কোনও .cmdফাইলের উপর ডান ক্লিক করে প্রশাসক হিসাবে চালানো হয় তখন ট্র্যাচিং স্ল্যাশ সহ ব্যাচ ফাইল ডিরেক্টরিটি %cd%দেয় C:\WINDOWS\system32এবং %~dp0দেয়।
icc97

25

এটি সাধারণত সেই ডিরেক্টরি হয় যা থেকে ব্যাচ ফাইলটি শুরু হয় তবে আপনি যদি শর্টকাট থেকে ব্যাচ ফাইলটি শুরু করেন তবে একটি ভিন্ন প্রারম্ভিক ডিরেক্টরি দেওয়া যেতে পারে। এছাড়াও, আপনি যখন সেন্টিমিটারে এসেছেন এবং আপনার বর্তমান ডিরেক্টরিটি রয়েছে c:\dir3, আপনি তখনও ব্যাচ ফাইলটি ব্যবহার করতে পারেন c:\dir1\dir2\batch.batযে ক্ষেত্রে বর্তমান ডিরেক্টরিটি হবে c:\dir3


11

একটি ব্যাচ ফাইলে, বর্তমান ডিরেক্টরিতে% cd% সর্বাধিক ব্যবহৃত কমান্ড, যদিও আপনি নিজের ভেরিয়েবল সেট করতে পারেন:

set mypath=%cd%
echo %mypath% (where %mypath% is the current directory that the batch file is sitting in)

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

start %mypath%\Myprog.exe

এটি বর্তমান ফোল্ডার থেকে মাইপ্রোগ খুলবে।

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

start "" "C:\AutomatePrograms\Myprog1.exe"
start "" "C:\AutomatePrograms\Myprog2.exe"
start "" "C:\AutomatePrograms\Myprog3.exe"

1
এখানে শীর্ষ উত্তরে উল্লিখিত হিসাবে, %cd%পরিবর্তনশীল, তাই উইন্ডোজ এক্সপ্লোরার থেকে ব্যাচ ফাইলটি অ্যাডমিন হিসাবে চালানো C:\WINDOWS\system32যা দেবে যা আপনি চান তা প্রায় নয়। %~dp0আরও সামঞ্জস্যপূর্ণ।
icc97

6

বলুন আপনি নিজের বর্তমান ডিরেক্টরিতে একটি ফাইল খুলছেন। আদেশটি হ'ল:

 start %cd%\filename.filetype

আমি আপনার প্রশ্নের উত্তর দিয়েছি আশা করি।


5

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

উপরের উত্তরে উল্লিখিত হিসাবে আপনি যাচাই করতে নীচের কমান্ডটি আপনার স্ক্রিপ্টে যুক্ত করতে পারেন:

> set current_dir=%cd%
> echo %current_dir%  

4

এটি ডিরেক্টরি যেখানে আপনি ব্যাচ ফাইল শুরু করেন। যেমন আপনার ব্যাচটি যদি থাকে c:\dir1\dir2এবং আপনি তা করেন cd c:\dir3তবে ব্যাচটি চালান, বর্তমান ডিরেক্টরিটি হবে c:\dir3


0

শুধু আমার 2 সেন্ট। পেনড্রাইভে রাখা ব্যাচ ফাইল (উইন্ডোজ)) থেকে কল করা থাকলে নিম্নলিখিত কমান্ডটি ব্যর্থ হয়েছে:

xcopy /s /e /i %cd%Ala C:\KS\Ala

তবে এটি কাজ করে:

xcopy /s /e /i %~dp0Ala C:\KS\Ala

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