আপনার প্রশ্নে যে ভিবিএসক্রিপ্ট ফাইলটি দেয় তা কাজ করে
আপনি যেমন বলতে পারেন set /p yyy=input number:
বা% ID% বলতে পারেন।
আমি নীচে আমি <= 4, আমি <=% ইয়াই% তে পরিবর্তন করব
yyy = 44 তাই এটি হয়ে যায় << 44
C:\blah>type a.a
var i;
for (i = 1; i <= 4; i++)
{
iimSet("loop", i);
iimPlay("ABC.iim");
}
C:\blah>set yyy=44
C:\blah>replace a.a "i <= 4" "i <= %yyy%"
C:\blah>type a.a
var i;
for (i = 1; i <= 44; i++)
{
iimSet("loop", i);
iimPlay("ABC.iim");
}
C:\blah>
সুতরাং দুটি লাইন দিয়ে কেবল একটি ব্যাট ফাইল তৈরি করুন। সেট / পি সহ একটি ... এবং প্রতিস্থাপনের লাইনের সাথে একটি।
বা মাত্র একটি লাইন
C:\blah>set /p ggg= & replace a.a var trt
(পাঠ্য টিআরটি সহ পাঠ্য বর্ণটি প্রতিস্থাপন করবে)
এখানে প্রতিস্থাপন.vbs যা আপনি লিঙ্ক করেছেন is আমি দেখতে পাই এটি সিসক্রিপ্টের সাহায্যে না চালিয়েও এটি কার্যকর করা হয়। (উইন 7 এ পরীক্ষিত)
C:\blah>type replace.vbs
Const ForReading = 1
Const ForWriting = 2
strFileName = Wscript.Arguments(0)
strOldText = Wscript.Arguments(1)
strNewText = Wscript.Arguments(2)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName, ForReading)
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, strOldText, strNewText)
Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.Write strNewText 'WriteLine adds extra CR/LF
objFile.Close
C:\blah>
হালনাগাদ-
এখানে একটি পদ্ধতি যা কেবল লাইনের জন্য একটিটিকে পুনরায় লিখুন
@ECHO OFF
REM run like repla 4 to make i <= 4 e.t.c.
REM C:\blah>repla 4<ENTER>
for /f "tokens=1,*" %%f in (a.a) do @(
IF NOT %%f == for (
echo %%f %%g
) ELSE (
ECHO for ^(int i=0; i ^<= %1; i++^)
)
)
আপডেট 2-
তবে আইডি সন্ধানের জন্য
এটি অনুসন্ধান করে - এটি বিবৃতিটির
জন্য আক্রমণাত্মক দেখাচ্ছে cmd.exe ব্যবহার করে লাইনটি এটি বিভক্ত হয়ে যায় (এটি টোকেনাইজ করে তোলে) at এক্ষেত্রে আমি সবেমাত্র স্থানকে ডিলিমিটার হিসাবে ব্যবহার করেছি (যদিও এটি উন্নত করা যেতে পারে)। এরপরে এটি সংখ্যাটি খুঁজে পেতে পারে তবে এটি একটি সেমিকোলন অনুসারে নম্বরটি সন্ধান করে। শেষ লাইনটি সেমিকোলনকে কিছুই দিয়ে প্রতিস্থাপন করে না, অর্থাৎ বিপথগামী সেমিকোলনটিকে সরিয়ে দেয়।
@ECHO OFF
for /f "tokens=1-12" %%f in (a.a) do @(
IF %%f == for set num=%%l
)
echo %num:;=%
যেখানে আমি প্রতিস্থাপন লিখি এটি বদলে ব্যবহার করে .vbs
C:\blah>type a.a
var i;
for (i = 1; i <= 10; i++)
{
iimSet("loop", i);
iimPlay("ABC.iim");
}
C:\crp>findit
10
C:\blah>replace a.a "i <= 10" "i <= 20"
C:\blah>type a.a
var i;
for (i = 1; i <= 20; i++)
{
iimSet("loop", i);
iimPlay("ABC.iim");
}
C:\blah>findit
20
C:\blah>
আপডেট 3
একটি লাইনের পরে অন্য লাইন যুক্ত করার জন্য .. যেটি আমি খুঁজে না পাওয়া পর্যন্ত এক মুহুর্তের জন্য আমাকে রেখেছিল; পালাতে হবে! ব্যাচের ফাইলগুলি সুন্দর নয়
আপনি যে ফাইলটির সাথে কাজ করতে চান তা আআ
আপনি যে ব্যাট ফাইলটি চালাবেন তা এই ক্ষেত্রে a2.bat। তবে আপনি যা চান তা নাম দিতে পারেন
যেমন আপনি দেখতে পাচ্ছেন, এটি আআ পড়ায় এবং আপনার উল্লিখিত লাইনের পরে একটি লাইন যুক্ত করে এটি সংশোধন করে।
আপনি a3.bat চালাতে পারেন একইভাবে a3.bat a3.bat দেখতে কিছুটা পরিষ্কার দেখা যাচ্ছে 'আমি বুঝতে পেরেছিলাম যে আমি এখনও পুরো বিস্ফোরণে প্রচুর স্টাফ ছাড়িয়ে কাজ না করেই এটি কাজ করতে পারি, তাই a3.bat কিছুটা সামান্য তবে a2.bat এর চেয়ে কদর্য চেহারা কম তবে তারা একই কাজ করে।
C:\blah>type a.a
var i;
for (i = 1; i <= 20; i++)
{
iimSet("loop", i);
iimPlay("ABC.iim");
}
C:\blah>type a2.bat
@echo off
for /f "tokens=*" %%f in (a.a) do (
echo %%f
if %%f == iimPlay^(^"ABC.iim^"^)^; echo iimPlay^(^"DEF.iim^"^)^;
)
C:\blah>a2
var i;
for (i = 1; i <= 20; i++)
{
iimSet("loop", i);
iimPlay("ABC.iim");
iimPlay("DEF.iim");
}
C:\blah>
আমার উল্লেখ করা উচিত, যে ব্যাট ফাইলটি একটি লাইন যুক্ত করে, অ-ধ্বংসাত্মকভাবে কাজ করে। সুতরাং আ এখনও একই। আপনি যদি এএ পরিবর্তন করতে চান, আপনি C:\blah>a2 >b.b<ENTER>
C:\blah>copy b.b a.a<ENTER>
ব্যাচের ফাইলের ফলাফলগুলি একটি নতুন ফাইলে আউটপুট করতে পারেন তবে এএএএ অনুলিপি করতে পারেন
এখানে ব্যাচ ফাইলের আরও একটি সংস্করণ রয়েছে যা এটিও কার্যকর হয় .. এবার যদিও আমি অনুলিপি করি
a3.bat এবং a2.bat একই ফলাফল দেয়।
এবং অনুলিপিটির জন্য, আমি অনুলিপি / y ব্যবহার করেছি, যাতে এটি ফাইলটি ওভাররাইট করতে বলবে না।
সুতরাং a2> বিবি বা এ 3> বিবি চালানো মানে ফলাফল বিবিতে চলে যায় তারপরে / টি বিবি এএপি অনুলিপি করুন এবং এটি মূল এএ ফাইলটি ওভাররাইট করে
C:\crp>type a3.bat
@echo off
for /f "tokens=*" %%f in (a.a) do (
echo %%f
if "%%f" == "iimPlay("ABC.iim");" echo iimPlay("DEF.iim"^)^;
)
C:\crp>a3
var i;
for (i = 1; i <= 20; i++)
{
iimSet("loop", i);
iimPlay("ABC.iim");
iimPlay("DEF.iim");
}
- কেবল এটি দেখানোর জন্য যে a2 একই কাজ করে
C:\crp>a2
var i;
for (i = 1; i <= 20; i++)
{
iimSet("loop", i);
iimPlay("ABC.iim");
iimPlay("DEF.iim");
}
-
এটি a3> বিবি দিয়েও করা যেতে পারে। তারা যেমন আউটপুট দেয়।
C:\blah>a2 >b.b
C:\blah>copy /y b.b a.a
1 file(s) copied.
C:\blah>copy b.b a.a <-- you wouldn't do this line. i'm just showing the point of /y
Overwrite a.a? (Yes/No/All):
0 file(s) copied.
C:\blah>copy /y b.b a.a
1 file(s) copied.
C:\blah>
- এখন আপনি দেখতে পাচ্ছেন অতিরিক্ত লাইন অন্তর্ভুক্ত করার জন্য এএ পরিবর্তন হয়েছে
C:\blah>type a.a
var i;
for (i = 1; i <= 20; i++)
{
iimSet("loop", i);
iimPlay("ABC.iim");
iimPlay("DEF.iim");
}
C:\blah>