কিভাবে একটি নির্দিষ্ট শব্দ অনুসন্ধান করুন যা ব্যাচ ফাইলের ভেরিয়েবলের সাথে মেলে


0

আমি অনুসন্ধান করেছি এবং এই সাইটটিতে পোস্ট করা বিভিন্ন প্রশ্ন এবং সমাধান চেষ্টা করেছি। কিন্তু আমার মতো একজন শিক্ষানবিস এর জন্য মস্তিষ্ক নেই। নিচের কোডটি যদি 1 টি স্ট্রিং রাখে তবে ভালভাবে কাজ করে। ম্যাচ মান খুঁজে পেতে অনুসন্ধান পরিবর্তনশীল পরিবর্তন কিভাবে। আমি এটা মত কাজ করতে চান: খুঁজে জিএক্সএনএম এডি সার্ভিস কলাম 1 এবং একটি ফাইল আউটপুট প্রিন্ট। এবং যে কেউ পাশাপাশি ব্যাখ্যা করতে পারেন।

আমার CSV (input.csv):

Application,RequesterID,Date,VerifierID
"GX AD Service,""9900232"",""10/09/2014 17:51"",""9909142"""
"GX AD Service,""9900249"",""10/09/2014 17:51"",""9909142"""
"GXNT AD Service,""9900232"",""10/09/2014 17:51"",""9909142"""
"GXNT AD Service,""9900249"",""10/09/2014 17:51"",""9909142"""
"GXNM - Others - (Reset Staffs),""99001730"",""11/09/2014 9:00"",""99090615"""

আমার ব্যাচ প্রোগ্রাম:

@echo off
cls
setlocal enabledelayedexpansion

set /p header=<input.csv
echo %header%>output2.csv

set column=1
set search=GXNM AD Service
cls

for /f "skip=1 tokens=*" %%A in (output.csv) do (
    set inline=%%A

    for /f "tokens=1-4 delims=," %%1 in ("!inline!") do (
    set col1=%%1&set col2=%%2&set col3=%%3&set col4=%%$
    findstr /rx 
    if !col%column%! equ !search! echo !inline!>>output2.csv
  )
)

type output2.csv
set "cmd=findstr /R /N "^^" output2.csv | find /C ":""
for /f %%a in ('!cmd!') do set number=%%a
echo %number%

উত্তর:


0

যে সঙ্গে কাজ করার জন্য ব্যথা মত দেখাচ্ছে। আপনি আমার ব্যবহার করতে পারে jgrep.bat এই জন্য স্ক্রিপ্ট।

@set @junk=1 /*
@echo off
cscript //nologo //E:jscript %0 %*
goto :eof
*/

args = WScript.Arguments
match = args(0);
if(match=="-t") match=args(1).replace("'", "\"");
var stdin = WScript.StdIn;
var stdout = WScript.StdOut;

// stdout.WriteLine("Arguments: "+match);

var regex = new RegExp(match);

while(!stdin.AtEndOfStream) {
    var sLine = stdin.ReadLine();
    if(regex.test(sLine)) stdout.WriteLine(sLine);
}

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

cat input.csv|jgrep.bat "(AD Service|GXNM)"

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

cat input.csv|jgrep.bat - Send the contents of input.csv to the jgrep.bat script.
(AD Service|GXNM) - Print only on lines which contain 'AD Service' or 'GXNM'.

এটা যে সহজ। ওহ হ্যাঁ, যদি আপনি একটি শিরোনাম এবং একটি ফাইলের ফলাফল সংরক্ষণ করতে চান, তাহলে এটি এখনও একটি মাছ ধরার নৌকা:

echo Application,RequesterID,Date,VerifierID>output.txt & cat input.csv|jgrep.bat "(AD Service|GXNM)">>output.txt
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.