অন্যান্য স্ট্রিংয়ের মাঝখানে হোয়াইটস্পেস ছাড়াই লাইনের ভিতরে একটি স্ট্রিং বের করুন


1

আমার কাছে এর মতো টেক্সট রয়েছে:

[Server]
Version=3
DTBNumber=1
[DTB001]
DTBName=ODBC;DRIVER=SQL Native Client;UID=MAN;PWD=bingo156;DATABASE=SHITMAN;SERVER=(local);
DTBType=5
DTBnUtenti=1
DTBUtenti=002LUCA;

"DATABASE =" এবং "এর মধ্যে কীভাবে আমি" শিটমান "শব্দটি বের করতে পারি; এবং একটি ব্যাচের সাথে এটি একটি ভেরিয়েবলে সঞ্চয় করুন?


উইন্ডোজ আইএনআই ফাইল থেকে তথ্য আহরণ করা সম্পর্কিত আরও সাধারণ সমস্যা।
ব্রায়ান

উত্তর:


1

নিম্নলিখিত বিশুদ্ধ ব্যাচ সমাধান বেশিরভাগ পরিস্থিতিতে কাজ করা উচিত। তবে এমন মান রয়েছে যা এটি ক্র্যাশ করতে পারে বা ভুল উত্তর দিতে পারে:

@echo off
setlocal
set "ln="
for /f "delims=" %%A in ('findstr /r "DATABASE=.*;" "test.txt"') do set "ln=%%A"
if not defined ln (
  echo Value not found
  exit /b 1
)
for /f "delims=;=" %%A in ("%ln:*DATABASE=%") do set "val=%%A"
echo Value=%VAL%

খাঁটি ব্যাচকে আরও শক্তিশালী করার উপায় রয়েছে। তবে একটি সাধারণ সরঞ্জাম রয়েছে যা একটি খুব শক্তিশালী এবং সহজেই ব্যবহারযোগ্য সমাধান সরবরাহ করে: REPL.BAT একটি হাইব্রিড ব্যাচ / জেএসক্রিপ ইউটিলিটি যা স্টেজেডে রেজেজ সন্ধান করে এবং প্রতিস্থাপন করে এবং ফলাফলটি স্ট্যাডআউটে লিখে দেয়। Aবিকল্প শুধুমাত্র লাইন যে রদবদল করা হয়েছে ফেরৎ।

@echo off
set "val="
for /f "delims=" %%A in ('type test.txt^|repl ".*DATABASE=(.*?);.*" $1 a') do set "val=%%A"
echo Value=%VAL%

বিষাক্ত অক্ষরগুলি স্ক্রিনে মানটি মুদ্রিত হলে শেষ সমাধানটি ব্যর্থ হতে পারে। শেষ ECHO বিবৃতিতে বিলম্বিত সম্প্রসারণের ব্যবহার এটিকে কোনও আইনি ব্যাচের পরিবেশের পরিবর্তনশীল মানের সাথে কাজ করবে।

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