command line - للصف - استبدال سلسلة في ملف دفعي




لغة فيجوال بيسك (2)

يمكنك استخدام الحيلة الصغيرة التالية:

set word=table
set str="jump over the chair"
call set str=%%str:chair=%word%%%
echo %str%

وتسبب call هناك طبقة أخرى من التوسع المتغير ، مما يجعل من الضروري ذكر علامات % الأصلية ولكن كل ذلك يعمل في النهاية.

يمكننا استبدال السلاسل في ملف دفعي باستخدام الأمر التالي

set str="jump over the chair"
set str=%str:chair=table%

هذه الخطوط تعمل بشكل جيد وتغيير السلسلة "القفز فوق الكرسي" إلى "القفز فوق الطاولة". الآن أريد استبدال كلمة "كرسي" في السلسلة ببعض المتغيرات ولا أعرف كيف أفعلها.

set word=table
set str="jump over the chair"
??

أيه أفكار؟


يمكنك استخدام! ، ولكن يجب أن يكون لديك مجموعة مفاتيح ENABLEDELAYEDEXPANSION.

setlocal ENABLEDELAYEDEXPANSION
set word=table
set str="jump over the chair"
set str=%str:chair=!word!%




batch-file