কিভাবে আমি একটি পরিবর্তনশীল তিনটি চরিত্র অন্য পরিবর্তনশীল মেলে কিনা পরীক্ষা করব?


4

আমার আছে %var1% এবং %var2%

var1="UserInput"
var2=file.log

একটি ব্যবহারকারী টাইপ করুন %var1% "file.txt" হিসাবে, আমি (যদি সম্ভব হয়) কেবলমাত্র তিনটি শেষ অক্ষর পরীক্ষা করতে পারি (অথবা যদি সম্ভব হয় তবে ফাইল বিন্যাস) এটা মেলে কিনা দেখতে %var2% তিনটি শেষ অক্ষর বা ফাইল বিন্যাস?

একই জিনিস যে একই পদ্ধতির স্বাগত জানাই (কিন্তু ব্যবহারকারী ইনপুট পরিবর্তনশীল অবশ্যই সেখানে থেকো)


একটি মত মনে হয় এক্সওয়াই সমস্যা
user2397282

উত্তর:


7

যদি আপনি অক্ষরের একটি নির্দিষ্ট সংখ্যা পরীক্ষা করতে যাচ্ছেন, তবে আপনাকে অবশ্যই শেষ 4 টি চেক করতে হবে, অন্যথায় "file.log" মিলবে "file.myLog"।

কিন্তু সর্বোত্তম বিকল্প দৈর্ঘ্য নির্বিশেষে, প্রকৃত এক্সটেনশন পেতে হয়:

@echo off
setlocal
set "var1=file.Log"
set "var2=file.myLog"

:: Option 1 using FOR loops
for %%A in ("%var1%") do for %%B in ("%var2%") do if "%%~xA"=="%%~xB" (
  echo Match
) else (
  echo No Match
)

: Option 2 using CALL parameters
call :matchExtension "%var1%" "%var2%" &&echo Match||echo No Match
exit /b

:matchExtension file1 fil2 --> returns 0 (success) if match, 1 (error) if no match
if "%~x1"=="%~x2" exit /b 0
exit /b 1

5

কিভাবে আমি একটি পরিবর্তনশীল তিনটি চরিত্র অন্য পরিবর্তনশীল মেলে কিনা পরীক্ষা করব?

প্রতিটি পরিবর্তনশীল শেষ 3 অক্ষর নিষ্কাশন করতে পরিবর্তনশীল পদার্থবিন্যাস সিনট্যাক্স ব্যবহার করুন।

উদাহরণ ব্যাচ ফাইল:

@echo off
setlocal
set /p var1="UserInput: "
set var1last3=%var1:~-3%
set var2=file.log
set var2last3=%var2:~-3%
if %var1last3% == %var2last3% (
  echo Match
  ) else (
  echo No Match
  )
endlocal

আরও পড়া


এটি আপনার উত্তরটির কার্যকারিতাকে প্রভাবিত করে না তবে কেন আপনি সেট করেছেন enabledelayedexpansion যখন আপনি কোন ব্যবহার করবেন না !var! প্রসারণও?
AFH

@ অভফ অভ্যাস অভ্যাস। আমি কোনো বিভ্রান্তি এড়াতে এটি মুছে ফেলা হয়েছে :)
DavidPostill

আপনার কোডটি প্রশ্নের উত্তর দেওয়ার সময়, এটি আসলে সমস্যাটিকে সমাধান করে না। উদাহরণ যেখানে এটি সঠিকভাবে কাজ করবে না: list.txt বনাম listxt, stuff.docx বনাম stuff.ocx, file1.o বনাম file2.o। এইগুলি কেবলমাত্র প্রকৃত ফাইল ফর্ম্যাটগুলির জন্য বৈধ এক্সটেনশানগুলি listxt একটি গঠিত এক্সটেনশান-কম ফাইল নাম।
gronostaj
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.