উইন্ডোজ ব্যাচের ফাইলগুলির লুকানো বৈশিষ্ট্য


232

উইন্ডোজ ব্যাচের ফাইলগুলির কিছু কম, তবে গুরুত্বপূর্ণ এবং দরকারী বৈশিষ্ট্যগুলি কী কী?

নির্দেশিকা:

  • উত্তর প্রতি বৈশিষ্ট্য
  • বৈশিষ্ট্যটির একটি সংক্ষিপ্ত বিবরণ এবং একটি উদাহরণ দিন , কেবলমাত্র ডকুমেন্টেশনের লিঙ্ক নয়
  • নেটিভ ফানশনালিটির উত্তর সীমাবদ্ধ করুন , যেমন উইন্ডোজ রিসোর্স কিটের মতো অতিরিক্ত সফ্টওয়্যার প্রয়োজন হয় না

স্পেসিফিকেশন: আমরা এখানে সেমি স্ক্রিপ্টগুলি উল্লেখ করি যা সেন্টিমিডি.এক্সই দ্বারা প্রসেস করা হয়, এটি উইনএনটি ভেরিয়েন্টে ডিফল্ট।

(আরও দেখুন: উইন্ডোজ ব্যাচের ফাইল: .bat বনাম। সিএমডি? )

উত্তর:


185

লাইন ধারাবাহিকতা:

call C:\WINDOWS\system32\ntbackup.exe ^
    backup ^
    /V:yes ^
    /R:no ^
    /RS:no ^
    /HC:off ^
    /M normal ^
    /L:s ^
    @daily.bks ^
    /F daily.bkf

2
আমি এই গত সপ্তাহে খুঁজছিলাম! (চরিত্রটি মনে করতে পারেনি)
চিলডেম্প

21
^ সত্যিই একটি উদ্ধৃতি চর। এটি ব্যবহার করে, আপনি <এবং> উদ্ধৃতি দিতে পারেন যাতে তারা আউটপুট পুনর্নির্দেশ না করে। Line একটি লাইনের শেষে লাইন ধারাবাহিকতাও মঞ্জুরি দেয়।
চিজো

আপনি কি এই ছোট স্ক্রিলেটটি ব্যাখ্যা করতে পারেন?
গেরদা

2
@furtelwart এই একই যেন আপনি একটি একক লাইন সব লিখেছেন: call C:\WINDOWS\system32\ntbackup.exe backup /V:yes /R:no /RS:no /HC:off /M normal /L:s @daily.bks /F daily.bkf। এবং যে লাইনের সকল প্যারামিটার বুঝতে, সহজভাবে চালানো C:\WINDOWS\system32\ntbackup.exe /?
কুর্ট ফেফিল


150
PUSHD path

আপনাকে পথ দ্বারা নির্দিষ্ট ডিরেক্টরিতে নিয়ে যায় ।

POPD

আপনাকে যে ডিরেক্টরি থেকে "ধাক্কা" দিয়েছিলে আপনাকে ফিরিয়ে নিয়ে যায়।


5
এটি একটি সম্পূর্ণ স্ট্যাক হিসাবেও কাজ করে, তাই আপনি স্ট্যাকের উপরে অনেকগুলি ডিরেক্টরি ঠেলাতে পারেন এবং তারপরে আপনি যেখানে ছিলেন সেখানে ফিরে যেতে পপিং চালিয়ে যেতে পারেন।
কিব্বি

সিরিয়াসলি? আমি এই বৈশিষ্ট্যটি আগে কখনও শুনিনি কীভাবে !?
জোশ হিমানম্যান

4
'Cmd.exe' চালান তারপরে 'সহায়তা' টাইপ করুন, তারপরে 'সহায়তা পুশড' বা 'পুশড /?' টাইপ করুন।
প্যাক্সিডিয়াবল

86
আপনি যদি কোনও ইউএনসি পথে এগিয়ে যান তবে এটি স্বয়ংক্রিয়ভাবে আপনার জন্য একটি ড্রাইভ ম্যাপ করবে এবং পপডগুলি এটিকে আনম্যাপ করবে।
ফেরুসকিও

2
বিশেষত ইউএনসি সক্ষমতার জন্য +1, আপনার উত্তরটিতে এটি যুক্ত করা উচিত।
অ্যাডাম মিটস

109

ব্যাচ ফাইলে এটি কতটা কার্যকর হবে তা নিশ্চিত নয় তবে কমান্ড প্রম্পটে এটি ব্যবহার করার জন্য খুব সুবিধাজনক কমান্ড:

C:\some_directory> start .

এটি "কিছু_ ডিরেক্টরি" ফোল্ডারে উইন্ডোজ এক্সপ্লোরার খুলবে।

আমি এটি একটি দুর্দান্ত সময়-সেভার পেয়েছি।


1
ভাল, আমি এটি ব্যবহার। আমার কাছে একটি PATH ডিরেক্টরিতে একটি "ওপেন.কমডি" ফাইল রয়েছে এবং সেই ফাইলটিতে কেবলমাত্র "@ স্টার্ট"। ;)
পলিয়াস

5
'এক্সপ্লোরার' এছাড়াও 'স্টার্ট' সি: \ কিছু_ ডিরেক্টরি> এক্সপ্লোরার হিসাবে একই কাজ করে।
রায়

1
আমি এটিকে [শুরু "" হিসাবে টাইপ করার প্রবণতা রাখি। ] (স্পষ্টতার জন্য বন্ধনী) কারণ প্রথম প্যারাম শিরোনাম হওয়ার বিষয়ে মাঝে মাঝে সূক্ষ্ম হয়।
সিস্টেম PAUSE

1
যদি আপনি কোনও ম্যাকের সাথে সংঘটিত হন, open .একই জিনিসটি করেন।
অনুদান পল

1
startকেবল বর্তমান ফোল্ডারটি খোলার চেয়ে আরও বেশি কিছু করে। আপনি এটিকে যে কোনও ফাইল পাস করতে পারেন এবং এটি এটি কনফিগার করা দর্শকের সাথে খুলবে। এটিকে একটি ইউআরএল দিন এবং আপনার ডিফল্ট ব্রাউজার খুলবে, ইত্যাদি ...
ইডব্রাই

87

আমি প্রতিটি লাইনে একটি কীওয়ার্ড দ্বারা চিহ্নিত মন্তব্যগুলি পড়া সবসময়ই কঠিন বলে মনে করেছি:

REM blah blah blah

পড়া সহজ:

:: blah blah blah

8
আমি শুনেছি :: আরএম এর চেয়ে বেশি দক্ষ কারণ আরএম এর পরে ঘটে যাওয়া স্টাফগুলিতে পরিবেশের পরিবর্তনশীল প্রসারণ করার চেষ্টা করে, তবে :: তা করে না।
স্কট ল্যাংহাম

47
আসলে, :: একটি মজার নাম সহ কেবল একটি লেবেল; তার জন্য, :: আপনি যদি কোনও ব্লকের ভিতরে (প্রথম বন্ধনীতে) এটি ব্যবহার করেন তবে কাজ করবে না যেহেতু সেখানে লেবেলের অনুমতি নেই। আরইএম অবশ্যই সেখানে কাজ করে।
mihi

নোট যদিও এটি remএকটি নথিভুক্ত কীওয়ার্ড, যখন ::কেবল একটি বাস্তবায়ন বিশদ। যদিও এটি অসম্ভব যে ::এটি কাজ করা বন্ধ করে দেবে এটি অননুমোদিত আচরণের উপর নির্ভর না করার জন্য সাধারণত পরামর্শ দেওয়া হয়।
জোয়ে

এমনকি আপনি goto :লেবেলে ঝাঁপিয়ে পড়তেও ব্যবহার করতে পারেন । :-)এবং goto -)কাজ করবে।
সোভেন মারনাচ

79

পরিবর্তনশীল সাবস্ট্রিংগুলি:

> set str=0123456789
> echo %str:~0,5%
01234
> echo %str:~-5,5%
56789
> echo %str:~3,-3%
3456

3
কুৎসিত, তবে উদ্বেগজনক!
গেরদা

1
@ ফার্টেলওয়ার্টের মতো শোনাচ্ছে ব্যাচের মূলমন্ত্র হতে পারে
rzrgenesys187

তারিখগুলি ফর্ম্যাট করার জন্য এটি দুর্দান্ত (তবে আমি যে সমস্যাটি পেয়েছি তা হল ভিস্তা / 7 এবং এক্সপি আউটপুট তারিখটি আলাদাভাবে)
ড্যানিয়েল

মনে রাখবেন যে দুর্ভাগ্যক্রমে, এটি ফোর লুপের স্থানীয় ভেরিয়েবলগুলির সাথে একত্রিত করা যায় না ( for %a in ...) যেহেতু পরিবেশের ভেরিয়েবলগুলির মতো তাদের সমাপনী শতাংশের চিহ্ন প্রয়োজন হয় না; আপনাকে প্রথমে অবশ্যই তাদের পরিবেশের পরিবর্তনশীল (বিলম্বিত সম্প্রসারণ ব্যবহার করে) বরাদ্দ করতে হবে এবং তারপরে একটি স্ট্রিংগুলি বের করতে হবে।
রোলকাউ

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

72

ফর কমান্ড ! যদিও আমি ব্যাচের ফাইলগুলি লিখতে পছন্দ করি না, আমি এর জন্য কৃতজ্ঞ।

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

মাইফাইল.টেক্সট প্রতিটি লাইনকে পার্স করবে, সেমিকোলন দিয়ে শুরু হওয়া লাইনগুলি উপেক্ষা করে, কমা এবং / অথবা স্পেস দ্বারা বিভাজনিত টোকেন সহ, দ্বিতীয় এবং তৃতীয় টোকেনটি প্রতিটি লাইন থেকে শরীরের জন্য প্রবেশ করবে। ২ য় টোকেন পেতে বডি স্টেটমেন্ট রেফারেন্স% i, তৃতীয় টোকেন পেতে% j, এবং তৃতীয় পরে সমস্ত টোকেন পেতে% কে পেতে খেয়াল করুন।

আপনি এটি ডিরেক্টরি, ডিরেক্টরি সামগ্রী ইত্যাদির মাধ্যমে পুনরাবৃত্তি করতেও এটি ব্যবহার করতে পারেন ...


4
আমি ব্যাচের ফাইলগুলির জন্য 'লুপগুলি সীমাবদ্ধ এবং লিখতে ভয়ানক পেয়েছি, তবে সেগুলি কখনও কখনও কার্যকর হয়।
ya23

2
আমার বাফলমেন্টটি ক্ষমা করুন, তবে পৃথিবীতে কীভাবে এটি ব্যবহার করা যায় না? আমি মনে করি আপনি যদি লুপগুলি না জানেন তবে আপনি ব্যাচ স্ক্রিপ্টিংটি জানেন না।
স্টাইল সহ কোডিং

11
আন্ডারউজড বা না, এটা অত্যাচার। (কিছু একটি প্রয়োজনীয় মন্দ তর্ক করবে।)
হার্পো

আমাকে এটি কয়েকবার ব্যবহার করতে হয়েছিল এবং যিনি এই বাক্য গঠনটি তৈরি করেছেন তাকে বরখাস্ত করা উচিত। একটি কামান থেকে। সূর্যের মধ্যে. এটা খারাপ।
ভাইটালিবি

1
@ কোডিংউইথস্টাইল: প্রতিবার যখন কোনও ব্যাচের ফাইলে লুপের জন্য লেখার দরকার পড়ে তখন স্ক্রিপ্টটি ব্যাশ লঞ্চার হয়ে যায় এবং পরিবর্তে স্ক্রিপ্টটি ব্যাশ (বা পাইথন) এ
পুনরায় লিখুন

60

আরইএম বা :: লাইনযুক্ত স্ক্রিপ্ট লিটারের পরিবর্তে প্রতিটি স্ক্রিপ্টের শীর্ষে আমি নিম্নলিখিতটি করি:

@echo OFF
goto :START

Description of the script.

Usage:
   myscript -parm1|parm2 > result.txt

:START

আপনি কীভাবে পাইপ এবং পুনর্নির্দেশের অক্ষরগুলি এড়ানো ছাড়াই ব্যবহার করতে পারেন তা নোট করুন।


3
আপনি যদি "/" এর জন্য% 1 টি পরীক্ষা করেন তবে আরও শীতল হতে পারবেন? এবং তারপরে আপনি সেই অংশটি সহায়তা পাঠ্য হিসাবে প্রতিধ্বনিত করতে পারেন।
demcodemonkey

6
হুম, সাক্ষর ব্যাচের প্রোগ্রামিং ?!
মুহাম্মদ আলকারৌরি

54

স্ক্রিপ্টটি যেখানে রয়েছে (ড্রাইভ সহ): p dp0

set BAT_HOME=%~dp0
echo %BAT_HOME%
cd %BAT_HOME%

আমি সাধারণত এর জন্য% সিডি% ব্যবহার করি। সম্ভবত এটি সমস্ত ডস শেল সংস্করণে পাওয়া যায় না?
শৌল ডলগিন

11
% CD% হ'ল বর্তমান ডিরেক্টরি যেখানে% ~ dp0 ডিরেক্টরি যেখানে চলমান স্ক্রিপ্টটি অবস্থিত।
রিয়েলহটোতো

এছাড়াও, আমি মনে করি না যে% সিডি% এর আগে উপস্থিত ছিল ... এক্সপি, সম্ভবত। আমি জানি উইন্ডোজের কিছু পুরানো সংস্করণ নেই।
থমাস ওপেনস

1
ব্যাট অন্য ড্রাইভে থাকলে তার পরিবর্তে আপনার সিডি / ডি% BAT_Home% ব্যবহার করা উচিত যদি আমি সঠিকভাবে মনে রাখি তবে এটি পুরানো ডসগুলির সাথে কাজ করবে না।
কেটরিন

আপনি যদি কোনও সিটি নেটওয়ার্কে ব্যাচ চালান তবে সিডি বা পুশ% BATH_Home% কাজ করবে না।
বেনোইট

49

% ~ Dp0 টুকরোটি ইতিমধ্যে উল্লেখ করা হয়েছিল, তবে এটিতে আরও রয়েছে: ~ এর পরে অক্ষর (গুলি) বের করা তথ্য সংজ্ঞায়িত করে।
প্যাচ ফাইলের নাম ফিরে আসার ক্ষেত্রে কোনও অক্ষরের ফল নেই
d - ড্রাইভ লেটার
পি প্রদান করে - পাথটি
ফেরৎ দেয়
-
এক্সটি সংক্ষিপ্ত পথ ফেরায় - যদি আপনি স্ক্রিপ্টটি পরীক্ষা করে নিলে পরীক্ষাটি নিচে c: \ টেম্প \ দীর্ঘ দির নাম \ ফোল্ডার,

@echo off
echo %0
echo %~d0
echo %~p0
echo %~dp0
echo %~x0
echo %~s0
echo %~sp0

আপনি নিম্নলিখিত আউটপুট পেতে

test
c:
\Temp\long dir name\
c:\Temp\long dir name\
.bat
c:\Temp\LONGDI~1\test.bat
\Temp\LONGDI~1\

এবং যদি স্ক্রিপ্টে
পরীক্ষার মতো একটি প্যারামিটার পাস করা হয় c: \ temp \ mysrc \ test.cpp
একই ম্যানিপুলেশন% 1 ভেরিয়েবলের সাহায্যে করা যেতে পারে।

কিন্তু% 0 এর প্রসারণের ফলাফলটি অবস্থানের উপর নির্ভর করে!
ব্যাচের "শীর্ষ স্তরের" এ এটি বর্তমান ব্যাচের ফাইল নামটিতে প্রসারিত হয়।
একটি ফাংশনে (কল), এটি ফাংশন নামে প্রসারিত হয়।

@echo off
echo %0
call :test
goto :eof

:test
echo %0
echo %~0
echo %~n0

আউটপুটটি হ'ল (ব্যাচফাইলটি मायব্যাচ.বাট দিয়ে শুরু করা হয়েছে)

myBatch.bat
:test
:test
myBatch

43

কল, প্রস্থান / বি, সেটকল এবং সমাপ্তি ব্যবহার করে আপনি স্থানীয় ভেরিয়েবলগুলি সহ সাব্রোটিনগুলি প্রয়োগ করতে পারেন।

উদাহরণ:

@echo off

set x=xxxxx
call :sub 10
echo %x%
exit /b

:sub
setlocal
set /a x=%1 + 1
echo %x%
endlocal
exit /b

এটি মুদ্রণ করবে

11
xxxxx

তবুও: সাব x পরিবর্তন করে।


6
আপনার পরিবর্তে গোটো: ইওফ ব্যবহার / প্রস্থানের পরিবর্তে / বি ব্যবহার করা উচিত, এটি একই কাজ করে তবে এটি করার আরও মানক উপায়।
ফিলিবার্ট পেরুস

2
এই জন্য একটি মান আছে? ও_ও
পলিয়াস

3
আমার ভুল. আমি ভেবেছিলাম আপনার অর্থ একটি স্পষ্টভাবে বোঝানো হয়েছে: ইওফ লেবেল এবং এটিতে একটি গোট করা। আমি বুঝতে পারি নি যে এখানে একটি অন্তর্নিহিত আছে: প্রতিটি ব্যাচের ফাইলের শেষে eof লেবেল।
ফেরুরসিও

3
তবে, আপনি যদি একটি সাব্রোটিন একটি ত্রুটিযুক্ত সেট সেট করতে চান তবে আপনাকে প্রস্থান / বি ব্যবহার করতে হবে। উদাহরণস্বরূপ: প্রস্থান / খ 3
ক্রিস নো

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

42

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

    echo %time%
    call :waitfor 5
    echo %time%
    goto :eof
:waitfor
    setlocal
    set /a "t = %1 + 1"
    >nul ping 127.0.0.1 -n %t%
    endlocal
    goto :eof

2
আরও ভাল এটি এটিকে বারবার লেখার ঝামেলা বাঁচানোর জন্য ঘুম.বাট এর মতো একটি ফাইলে রাখলে।
এরজিয়াং

1
... এবং PATH এনভায়রনমেন্ট ভেরিয়েবলের কিছু ডিরেক্টরিতে
ঘুম.বাট রাখুন

আমি এটি বাইরে রাখার বিপক্ষে, উইন্ডোজ সিস্টেমগুলিতে কম পোর্টেবল তৈরি করে ...
sorin

37

"নদীর গভীরতানির্ণয়" থেকে বেরিয়ে আসা:

echo ^| ^< ^> ^& ^\ ^^

3
আমি বাজি ধরব ডস পালানোর চরিত্রটি সুপরিচিত নয়। ভাল একটা.
জোশুয়া

12
আহ, এটি কেন ব্যাখ্যা করবে যে কেন এটি লাইন ধারাবাহিকতা অপারেটর - এটি
নিউলাইনটি

@leander: হ্যাঁ, কিন্তু এটি শুধুমাত্র এলএফ (এবং সি আর), বাঁচা যায় কারণ সব Crs আগে সরিয়ে ফেলা হয়
Jeb

সুতরাং এই কারণেই উইন্ডোজটিতে গিট ব্যবহার করা পূর্ববর্তী প্রতিশ্রুতি ( HEAD^) এর সাথে পৃথক হতে সমস্যাযুক্ত।
ড্যানিয়েল ট্রেবিয়েন

31

কমান্ড চালাতে সক্ষম এবং আউটপুট প্রক্রিয়া করতে সক্ষম (যেমন ব্যাশে '$ ()' এর ব্যাকটিক্স)।

for /f %i in ('dir /on /b *.jpg') do echo --^> %i

যদি ফাইলের নামগুলিতে ফাঁক থাকে তবে এটি ব্যবহার করুন:

for /f "tokens=*" %i in ('dir /on /b *.jpg') do echo --^> %i

2
ফাইলের নামগুলির সাথে কাজ করে না যার নামগুলিতে শূন্যস্থান রয়েছে ... এটি কাজ করে: / f "টোকেনগুলি = *"% i ইন ('দির / অন / বি * .jpg') এর প্রতিধ্বনি - ^>% i
ডোকম্যান 10

ভালো বল ধরা. ব্যক্তিগতভাবে আমি মনে করি ফাইলের নামের জায়গাগুলি হ'ল নরকের নবম বৃত্তের গভীরতা থেকে দূষিত গোপন জিনিস। আমার ধারণা, আমাদের তাদের যত্ন নেওয়া উচিত।
paxdiablo

এটি আমি এখনও দেখেছি এমন ক্রেজিস্ট সিনট্যাক্স। আপনি যদি এই ব্যাকটিক.বাটি তৈরি করেন এবং স্ট্রিংয়ে পাস করেন তবে এটি কাজ করে?
ইডব্রাই

30

একটি খালি ফাইল তৈরি করা হচ্ছে:

> copy nul filename.ext

6
@ ডিভিও: প্রতিধ্বনি একটি খালি লাইন রাখে। ফাইলটি খালি না!
পলিয়াস 18

4
আমি তার type nul > filename.extজন্য ব্যবহার করি
বেনোইট

খুব ভাল লাগছিল আমি ভাবছিলাম যে দীর্ঘদিন ধরে কোনও স্পর্শের সমতুল্য আছে কিনা।
jdelator

আমি সর্বদা ব্যবহার করেছিren > blah.txt
সিএনটেক

28

কমান্ড থেকে সমস্ত আউটপুট আড়াল করতে <নুল 2> & 1 এ পুনঃনির্দেশ করুন।

উদাহরণস্বরূপ, কিছু কমান্ড লাইন প্রোগ্রাম আউটপুট প্রদর্শন করে এমনকি আপনি যদি> নুল এ পুনঃনির্দেশ করেন। তবে, আপনি যদি নীচের লাইনের মতো আউটপুট পুনর্নির্দেশ করেন তবে সমস্ত আউটপুট দমন করা হবে।

PSKILL NOTEPAD >nul 2>&1

সম্পাদনা: দেখুন কীভাবে এটি কাজ করে তার একটি ব্যাখ্যার জন্য একটি আদেশের আউটপুট উপেক্ষা করা দেখুন ।


1
আপনি কি জানেন যে এটি কীভাবে কাজ করে? 2> & 1 বিটের অর্থ কী?
স্কট ল্যাংহাম

12
>> নুল স্টুলআউটটিকে নুল করতে পুনঃনির্দেশ করে। 2> & 1 এসটিডিআরআর যেখানেই STDOUT নির্দেশ করছে সেখানে পুনর্নির্দেশ করে।
এফোরিয়া

বিশেষত, আমি মনে করি 2> & 1 টি একটি "ফাইলহ্যান্ডেল ক্লোন", STDERR কে STDOUT এর ক্লোনে সেট করে। এটি> NUL এর পরে রাখা গুরুত্বপূর্ণ, কারণ আপনি এটি পুনর্নির্দেশের পরে STDOUT ক্লোন করতে চান , এর আগে নয়। (দয়া করে আমি এখানে ভুল হয়ে থাকলে আমাকে সংশোধন করুন))
লিণ্ডার

1
আপনারা যারা ভাবছেন যে পিএসকিআইএল কোথা থেকে এসেছে, সিসিনটার্নাল ডট কম দেখুন । আপনি যদি প্রো সংস্করণে থাকেন তবে আপনার কাছে একটি স্থানীয় টিএসকিআইএল কমান্ড থাকা উচিত যা কমবেশি একই রকম।
স্টাইল সহ কোডিং

1
আপনার কাছে যদি পিস্কিল বা টিস্কিল না থাকে তবে বেশিরভাগ উইন্ডোজ সিস্টেম ব্যবহার করেছি যা আমি ব্যবহার করেছি taskkill
ইডব্রাই

25
PAUSE

কার্যকর করা বন্ধ করে দেয় এবং নিম্নলিখিত প্রম্পটগুলি প্রদর্শন করে:

চালু রাখবার জন্য যেকোনো বোতাম চাপুন . । ।

আপনি যদি কোনও ব্যাচ উইন্ডোজ এক্সপ্লোরারে ডাবল ক্লিক করে চালাতে চান এবং কমান্ড উইন্ডোটির কেবল একটি ফ্ল্যাশ না করে আউটপুটটি দেখতে চান তবে দরকারী।


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

15
"বিরতি" এর একটি ঝরঝরে বৈশিষ্ট্য হ'ল যদি কোনও "কী" পাওয়ার জন্য কোনও টার্মিনাল না থাকে (যেমন, যদি আপনার ব্যাচের ফাইলটি কোনও সিস্টেম পরিষেবা থেকে চালিত হয়), এটি এটি সনাক্ত করে এবং কেবল চালিয়ে যাচ্ছে ...
লিণ্ডার

4
চার্লি সোমারভিলের কাছে +1, এটি প্রতিটি গেম প্রোগ্রামারের 'গো.বাট' 90 এর দশকের গোড়ার দিকে এটি ব্যবহার করে তাই পরিচিত।
LiraNuna

6
আপনার সমস্ত ব্যাচের ফাইলগুলিকে দূষিত করার পরিবর্তে (এবং তাদের সিএলআই গিক্সের জন্য ব্যবহারে বিরক্তিকর করে তোলা) পরিবর্তে আপনি স্টার্ট / রান / তারপরে 'সেমিডি / কে' এবং ব্যাচ ফাইলের নামটি ব্যবহার করতে পারেন। অথবা এইচকেসিআর \ ব্যাটফিল \ শেল \ ওপেন \ কমান্ড ডিফল্ট স্ট্রিংকে 'সেন্টিমিডি / কে "% 1"% *' এ পরিবর্তন করুন। বা অন্য একটি ব্যাচফাইল তৈরি করুন যা কেবল '@ সিএমডি / কে $ *' চালায়, এটি ডেস্কটপে রাখুন এবং এটিতে আপনার অন্যান্য ব্যাচ ফাইলগুলি ফেলে দিন। PAUSE এর প্রচুর বিকল্প রয়েছে। তাদের বিবেচনা করুন।
সিস্টেম PAUSE

1
@ অদ্ভুত: আপনি এখনও স্ক্রিপ্টটিতে পাইপ করতে পারেন: echo.|batch-with-pause.bat'যে-কী' টিপানোর মতোই প্রভাব ফেলবে ...
কার্ট ফেফেল

25

ব্যাশের সমতুল্য (এবং অন্যান্য শাঁস)

echo -n Hello # or
echo Hello\\c

কোন Helloপেছনের নিউলাইন ছাড়াই " " আউটপুট দেয় । এটি করার জন্য একটি সেন্টিমিডি হ্যাক:

<nul set /p any-variable-name=Hello

set /pইনপুট জন্য ব্যবহারকারীকে অনুরোধ করার একটি উপায়। এটি প্রদত্ত স্ট্রিংটি নির্গত করে এবং তারপরে অপেক্ষা করে (একই লাইনে, অর্থাত্ কোনও সিআরএলএফ নেই), ব্যবহারকারী কোনও প্রতিক্রিয়া টাইপ করার জন্য।

<nul কেবল পাইপগুলির কাছে একটি খালি প্রতিক্রিয়া set /p কমান্ডের পাইপস, তাই নেট ফলাফল নির্গত প্রম্পট স্ট্রিং হয়। (ব্যবহৃত ভেরিয়েবলটি খালি পুনর্বিবেচনার কারণে অপরিবর্তিত রয়েছে।)

সমস্যাগুলি হ'ল: নেতৃস্থানীয় সমান চিহ্নটি আউটপুট করা সম্ভব নয় এবং ভিস্তার শীর্ষস্থানীয় হোয়াইটস্পেস অক্ষরগুলি সরানো হয়, তবে এক্সপিতে নয়।


18

পরিবেশের ভেরিয়েবলগুলি সেট করার সময় অনুসন্ধান করুন এবং প্রতিস্থাপন করুন:

> @set fname=%date:/=%

... টাইমস্ট্যাম্পযুক্ত ফাইলের নাম ব্যবহারের জন্য একটি তারিখ থেকে "/" সরান।

এবং সাবস্ট্রিংগুলিও ...

> @set dayofweek=%fname:~0,3%

17

পূর্ণসংখ্যার গাণিতিক:

> SET /A result=10/3 + 1
4

এসইটি কতক্ষণ গণনা করার ক্ষমতা পেয়েছে? উইন্ডোজ এক্সপি?
চকৃত

1
আপনি যদি মানগুলি কত বড় হতে পারে তা যদি জিজ্ঞাসা করেন তবে আমি বিশ্বাস করি এটি 32-বিট। সুতরাং +/- 2 বিলিয়ন
ক্রিস নো

1
আমার মনে হয় প্রশ্নটি ছিল, এসইটি কতদিন ধরে গণনা করতে সক্ষম হয়েছে? উইন্ডোজ এক্সপি?
মাইকেল ম্যাইইয়ার্স

3
আমি সিএমডি.এক্সই এর সেটটি এনটি 3.1 বা তার পরে গণনা করতে সক্ষম হয়েছে। যে কাউকে খেয়াল করতে কেবল এটি দীর্ঘ সময় নিয়েছে যে সিএমডি.এক্সই
কম্ম্যান্ড ডটকমের

16

কমান্ড বিভাজনকারী:

cls & dir
copy a b && echo Success
copy a b || echo Failure

২ য় লাইনে, && এর পরে কমান্ডটি কেবল প্রথম কমান্ড সফল হলে চালিত হয়।

তৃতীয় লাইনে, কমান্ড পরে || প্রথম কমান্ড ব্যর্থ হলেই চলে।



15

শর্ট-সার্কিট বুলিয়ান `এবং 'এর মতো কোনও প্রতিক্রিয়া পেতে বিবৃতিগুলি শৃঙ্খলা করতে পারেন।

if foo if bar baz

1
এটি বাসা if foo ( if bar ( baz ) )
বাঁধার

14

একটি ইউনিকোড পাঠ্য ফাইল (16 বিট / চর) দ্রুত ASCII ডস ফাইলে (8 বিট / চর) রূপান্তর করতে।

C:\> type unicodeencoded.txt > dosencoded.txt

বোনাস হিসাবে, সম্ভব হলে অক্ষরগুলি সঠিকভাবে ম্যাপ করা হয়।


1
এটি একটি এএনএসআই ডস ফাইল - এএসসিআইআই 7 বিট / চর।
মার্কজে

হ্যাঁ, এই একটি একটি অ্যান্টি-প্যাটার্ন, এই রূপান্তরটি ব্যর্থ হওয়ার সম্ভাবনা বেশি। ইউনিকোডকে কেবলমাত্র ইউটিএফ -8 হিসাবে সমর্থন করে এমন একমাত্র 8 বিট এনকোডিং কিন্তু এম-কে ধন্যবাদ আপনাকে উইন্ডোজে ইউটিএফ -8 কোডপেজ সেট করতে পারে না।
সোরিন

14

যদি ব্লক কাঠামো:

if "%VS90COMNTOOLS%"=="" (
  echo: Visual Studio 2008 is not installed
  exit /b
)

3
যতক্ষণ আপনি অবগত আছেন যে ভেরিয়েবলগুলি একযোগে সমস্ত প্রসারিত হবে (দেরি না করা ছাড়াই) - অর্থাৎ আপনি সেখানে% ERRORLEVEL% বোধগম্য ব্যবহার করতে পারবেন না।
ডানকান স্মার্ট

আপনি সেখানে লেবেলগুলিও ব্যবহার করতে পারবেন না (এতে সেগুলি :: শৈলীর মন্তব্য অন্তর্ভুক্ত রয়েছে) কারণ এটি সময়-পূর্ববর্তী যদি বিবৃতিটি শেষ করে দেয়।
স্টাইল সহ কোডিং

2
@ ডানকান: আপনার যেভাবে সিউডো-ভেরিয়েবল ব্যবহার করা উচিত নয় %ERRORLEVEL%; এটা কি if errorlevel <foo>জন্য এবং এটি আসলে এই জাতীয় ব্লকগুলিতে কাজ করে।
জোয়

12

ভেরিয়েবলের বিলম্বিত সম্প্রসারণ (ভাল পরিমাপের জন্য নিক্ষেপ করা সাবস্ট্রিংগুলি সহ):

    @echo off
    setlocal enableextensions enabledelayedexpansion
    set full=/u01/users/pax
:loop1
    if not "!full:~-1!" == "/" (
        set full2=!full:~-1!!full2!
        set full=!full:~,-1!
        goto :loop1
    )
    echo !full!
    endlocal

12

খুব বেশি কার্যকারিতা সরবরাহ করে না, তবে আপনি টাস্ক বারের দীর্ঘ স্ক্রিপ্টে স্থিতি প্রদানের মতো, বা কেবল ব্যবহারকারীদের প্রতিক্রিয়া বাড়ানোর জন্য কয়েকটি ব্যবহারের জন্য শিরোনাম কমান্ড ব্যবহার করতে পারেন।

@title Searching for ...
:: processing search
@title preparing search results
:: data processing

2
মজাদার. যদিও এরপরে আপনি স্পষ্টতই নিয়মিত বৈশিষ্ট্যটি হারাবেন যা বর্তমানে চলমান কমান্ডটি প্রদর্শন করবে। এটি পুনরায় সেট করার কোনও উপায় আছে কি?
ক্রিস নো

2
টেকনেট.মাইক্রোসফট.ইন- ইউস / লিবারি / বিবি 491017.aspx বলেছেন যে এটি নিজের "শিরোনাম" দিয়ে পুনরায় সেট করা যেতে পারে তবে উইন্ডোজ 7 ...
on এ

11

কোনও সম্পাদক হাতে নেই এবং একটি ব্যাচ ফাইল তৈরি করার দরকার নেই?

copy con test.bat

কমান্ডগুলি কেবল টাইপ করুন, একটি নতুন লাইনের জন্য এন্টার টিপুন। ফাইলটি বন্ধ করতে Ctrl-Z এবং এন্টার টিপুন।


4
হেই, আমাকে ফিরিয়ে নিয়ে যায়।
5:30

11

"YYYY-MM-DD HH: MM: SS.txt" নামক ফাইলটি পাওয়ার dateও স্ট্রিং বিয়োগের উদাহরণtime

echo test > "%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%_%time:~3,2%_%time:~6,2%.txt"

আমি colorআমার স্ক্রিপ্টটি সফলভাবে শেষ হয়েছে কিনা তা বোঝাতে ব্যবহার করেছি, ব্যর্থ হয়েছে বা পাঠ্য এবং পটভূমির রঙ পরিবর্তন করে কিছু ইনপুট প্রয়োজন। এটি আপনার সাহায্যের কাছে পৌঁছানোর জন্য কিছু মেশিন থাকলে তবে এটি বেশ দূরে

রঙ এক্সওয়াই

যেখানে X এবং Y থেকে হেক্স মান 0থেকে F, যেখানে এক্স - পটভূমি, y - টেক্সট, যখন এক্স = ওয়াই রঙ পরিবর্তন করবে না।

রঙ জেড

'জেড' এ পাঠ্যের রঙ পরিবর্তন করে এবং কালো পটভূমি সেট করে, 'রঙ 0' কাজ করবে না

রং কল জন্য

রঙ?


সম্পাদিত; _কে ইটালিক হিসাবে ব্যাখ্যা করা হয়েছিল। কোড খুব ভাল।

@ ডানকান স্মার্ট: সত্য নয়, ইউকে ইংরাজিতেও কাজ করে (যদিও প্রযুক্তিগতভাবে এটি "রঙ", গ্রার হওয়া উচিত)
দৈত্যকোডমোনকি

10

ব্যবধান এবং পালানোর অক্ষরের সাথে আউটপুট উপর সম্পূর্ণ নিয়ন্ত্রণ:

echo.    ^<resourceDir^>/%basedir%/resources^</resourceDir^>

1
ওটা কিভাবে কাজ করে? বিন্দু পাঠ্য আউটপুটটির প্রারম্ভিক করে?
ক্রিস নো

3
"প্রতিধ্বনি। এটি নেতৃস্থানীয় স্থানগুলিকে অনুমতি দেয়। তদুপরি "escape" পালানোর চরিত্রটি "<" এবং ">" অক্ষরগুলি I / O পুনঃনির্দেশের সবগুলি ভাবতে বাধা দেয়।
paxdiablo

1
প্রতিধ্বনি (উত্তম কারণ প্রতিধ্বনি নামে "একো" এই ফাইলটি যদি উপস্থিত থাকে প্রতিধ্বনি, ব্যর্থ, তাহলে অভ্যন্তরীণ প্রতিধ্বনি মৃত্যুদন্ড কার্যকর করা হয় না কোনো ফাইল একটি ফাইল সার্চ সৃষ্টি, কিন্তু এটা তুলনায় ধীর হয় প্রতিধ্বনি
Jeb

9

থসফটওয়্যারজেডি ইতিমধ্যে ফর কমান্ডের কথা উল্লেখ করেছে, তবে এটি খুব শক্তিশালী হওয়ায় আমি আবার এটি উল্লেখ করতে যাচ্ছি।

নিম্নলিখিতটি YYYYMMDD ফর্ম্যাটে বর্তমান তারিখটিকে আউটপুট দেয়, ব্যাকআপের জন্য ডিরেক্টরি তৈরি করার সময় আমি এটি ব্যবহার করি।

for /f "tokens=2-4 delims=/- " %a in ('DATE/T') do echo %c%b%a

2
অবশ্যই তারিখ / টি ইউরোপে 29/10/2008 এবং মার্কিন যুক্তরাষ্ট্রে 10/29/2008 প্রদান করে ... তাই কিছু স্থানীয়করণের প্রয়োজন হতে পারে! ;-)

সেটা ঠিক! তবে কোন তারিখের ফর্ম্যাটটি ব্যবহার করা হয়েছে তা জানতে আপনি ডেট কমান্ডটি অপব্যবহার করতে পারেন।
রেমনডো

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