উত্তর:
@echo off
IF exist myDirName ( echo myDirName exists ) ELSE ( mkdir myDirName && echo myDirName created)
বার্লোপ যোগ করেছেন
উপরোক্ত এই নির্দিষ্ট পরিস্থিতির জন্য কাজ করে, শিরোনামটি বিশেষত একটি ডিরেক্টরি জন্য পরীক্ষার বিষয়ে বলে। ফোগের মন্তব্য if exist mydirname\
বরং ব্যবহারের if exist mydirname
উপায়। কিছু উত্তর \ nul ব্যবহার করেছে তবে T nul এনটি সমস্যাযুক্ত। একটি পিছনে ব্যাকস্ল্যাশ সহ কোনও ফাইল বা ডিরেক্টরি পরীক্ষা করবে। সুতরাং, একটি ডিরেক্টরি জন্য, পিছনে ব্যাকস্ল্যাশ অন্তর্ভুক্ত।
if exist mydirname\
এবং বাকি হিসাবে আপনি বলছেন। পর্যায়ক্রমে, আপনি আসলে একটি test
বাইনারি পেতে এবং এটি উইন্ডোতে ব্যবহার করতে পারেন।
mkdir
।
if not 1==1 echo hmm
বা উপস্থিত থাকলে আমারডিরনম \ এলএলএসই ব্লহব্লাহাব্লাহ
আমি সবেমাত্র এটি জানতে পেরেছি:
কোনও নুল ফাইল উপস্থিত থাকলে আপনি পরীক্ষা করতে পারেন; ডিরেক্টরি যদি বিদ্যমান থাকে তবে এতে একটি নুল ফাইল থাকবে, যদি নুল ফাইলটি না থাকে তবে ডিরেক্টরিটি বিদ্যমান থাকে না।
IF exist myDirName/nul ( echo myDirName exists ) ELSE ( mkdir myDirName && echo myDirName created)
if exist dirname
উইন্ডোজ এনটি-র সাথে সুনির্দিষ্ট বলে মনে হচ্ছে এমন সমস্ত উইন্ডোজ এবং এমএস-ডস সংস্করণে কাজ করে ।
\nul
, উইন্ডোজ এনটি তে এটি আর প্রয়োজন হয় না, প্লেইনটি if exist "C:\Program Files (x86)"
কাজ করা উচিত (যদি আপনি এখনও উইন্ডোজ 98 কে টার্গেট করেন না ...)
ব্যাকস্ল্যাশ ব্যবহার করুন, ফরোয়ার্ড স্ল্যাশ myDirName\nul
নয় : নয়myDirName/nul
md foo
echo.>bar
for %I in (foo bar xyz) do @(
if exist %I (
if exist %I\nul (
echo -- %I is a directory
) else (
echo -- %I is a file
)
) else (
echo -- %I does not exist
)
)
- foo একটি ডিরেক্টরি
- বার একটি ফাইল
- xyz বিদ্যমান নেই
সম্পাদনা: এটি কেবল তখনই কাজ করে যদি ডিরেক্টরিতে নামের অন্তর্ভুক্ত থাকে না
কেউ কেউ \ nul করার পরামর্শ দিয়েছেন, তবে এটি এনটি তে নির্ভরযোগ্যভাবে কাজ করবে বলে মনে হয় না
C:\blah>md abc
C:\blah>if exist abc\nul echo yes
yes
C:\blah>if exist "abc\nul" echo yes
C:\blah>
http://www.dostips.com/forum/viewtopic.php?f=3&t=4913
foxidrive writes-
The trick with nul worked in pre NT versions of windows.
Now you would use this, with a trailing backslash.
if exist "C:\abcde\" echo the folder exists
প্রশ্ন আবার
C:\blah>if exist "abcd\" (echo yes) else (echo no && mkdir abcd)
no
C:\blah>if exist "abcd\" (echo yes) else (echo no && mkdir abcd)
yes
C:\blah>
আমি ভাবছিলাম যে জো কেন ডাউন ডাউন ছিল কেন আমি উইন্ডোজ on তে একই ধরণের সমস্যাটি অনুভব করছিলাম, কারণ এটি
যদি ফাইলের নাম না থাকে \ NUL
ফাইল এবং ডিরেক্টরি উভয়ের জন্য সত্য ফিরে আসছিল। আমি www.robvenderwoude.com/battech_ifexistfolder.php এ একটি বিকল্প সমাধান পেয়েছি এবং ডিভিএফ এর ফর লুপের একটি সংশোধিত সংস্করণ নিয়ে এসেছি:
FOR %I in (foo bar xyz) DO @( PUSHD %I && (POPD & echo -- %I is a directory) || ( IF exist %I ( echo -- %I is a file ) ELSE ( echo -- %I does not exist ) ) )
ফাইল এবং ফোল্ডারগুলির মধ্যে পার্থক্য নিয়ে অনেকেরই সমস্যা রয়েছে। এর উপস্থিতি যাচাই করার পরে কেউ কি কেবল সিডি করার চেষ্টা করেছে? তারপরে সিডি হয় সফল হবে না ব্যর্থ হবে।
set MyDir = "MyTestDir"
IF exist MyDir (
cd MyDir
IF ERRORLEVEL NEQ 0 (
echo "Error: %MyDir% already exists, but it is a file!"
exit 1
) else (
# Do not forget to cd back
cd ..
)
) else (
# Did not exist yet, so create it.
mkdir MyDir
)
MyDir
প্রথম লাইনের পরে সমস্ত ঘটনা হওয়া উচিত %MyDir%
। (২) মাল্টি-লেভেল প্যাথনাম (যেমন, ) বা এমনকি একটি পরম প্যাথনাম (যেমন, ) cd ..
চাইলে %MyDir%
এটি আপনি যা করতে চান তা করবে না । / এবং / অথবা ব্যবহার বিবেচনা করুন । Pictures\cats
\Windows
pushd
popd
setlocal
exist myDirName/nul
মাইডিরনাম কোনও ফাইল হলে এটিও সত্য, এটি অনুসন্ধানের কার্যকারিতা নয়
C:\blah>touch abe<ENTER>C:\blah>if exist abe\nul echo err<ENTER> C:\blah>if exist abe/nul echo err<ENTER>C:\blah>
আমি এনটি তে \ nul এর কোন অনুরাগী নই তবে তা নেই। আপনার কিছু আউটপুট দেওয়া উচিত ছিল।
ফোল্ডার সন্ধান করা এই কঠিন হওয়া উচিত নয়। আমার সমাধান, পার্ল ব্যবহার করুন:
($ সিএনটি = $ # এআরজিভি; $ সিএনটি> = 0; - nt সেন্ট) { যদি (-d "$ এআরজিভি [$ সিএনটি]") { মুদ্রণ "আরজিভি [$ সিএনটি] = $ এআরজিভি [$ সিএনটি] একটি ফোল্ডার \ n"; $ দির = $ এআরজিভি [$ সেন্ট]; বিরতি; } অন্য { মুদ্রণ "আরজিভি [$ সিএনটি] = $ এআরজিভি [$ সিএনটি] কোনও ফোল্ডার নয় \ n"; } }
mkdir -p myDirName
। অপেক্ষাকৃত সহজ ব্যাশ-স্ক্রিপ্টগুলি ব্যাচ-শ * টিতে (কোনও ফাংশনের ফলাফলকে একটি ভেরিয়েবলের জন্য নির্ধারণ করে?) অনুবাদ করার চেষ্টা করার পরে দিন কাটিয়ে যাওয়ার পরে, আমি সিদ্ধান্ত নিয়েছি যে মানুষকে কেবল সাইগউইন ইনস্টল করা যায়।