هل من الممكن وضع حرف سطر جديد في خط الصدى في ملف دفعي؟ [مكرر

StackOverflow https://stackoverflow.com/questions/1721258

  •  19-09-2019
  •  | 
  •  

سؤال

هذا السؤال لديه بالفعل إجابة هنا:

هل من الممكن وضع حرف سطر جديد في خط الصدى في ملف دفعي؟

في الأساس أريد أن أكون قادرا على القيام بما يعادل:

echo Hello\nWorld

يمكنك القيام بذلك بسهولة كافية في Linux، لكن لا يمكنني تحديد كيفية القيام بذلك في Windows.

هل كانت مفيدة؟

المحلول

echo. يطبع خط فارغ.

مثال:

echo Hello
echo.
echo world

مطبوعات

Hello

world

نصائح أخرى

يمكن حلها مع صدى واحدة.

تحتاج إلى حرف جديد \n لهذا. هناك طرق متعددة للحصول على سطر جديد في echo

1) تستخدم هذه العينة Caret Multiline لإضافة جديد إلى الأمر،
الخط الفارغ مطلوب

echo Hello^

world

2) الحل التالي يخلق أولا متغير يحتوي على حرف تغذية خط واحد.

set \n=^


rem ** Two empty lines are required

أو قم بإنشاء السطر الجديد بإصدار تم تعديله قليلا

(set \n=^
%=DONT REMOVE THIS=%
)

واستخدام هذه الشخصية مع تأخر التوسع

setlocal EnableDelayedExpansion
echo Hello!\n!world

لاستخدام حرف تغذية خط مع توسيع النسبة المئوية تحتاج إلى إنشاء تسلسل أكثر تعقيدا

echo Hello^%\n%%\n%world

أو يمكنك استخدام خط جديد اختراق

REM Creating a Newline variable (the two blank lines are required!)
set \n=^


set NL=^^^%\n%%\n%^%\n%%\n%
REM Example Usage:
echo There should be a newline%NL%inserted here.

ولكن فقط التوسع المتأخر في Newline يعمل موثوقة، أيضا داخل اقتباسات.

بعد القليل من التجريب، اكتشفت أنه من الممكن القيام بذلك دون إصدار أوامر صدى منفصلة كما هو موضح في كيف يمكنك صدى جديد على ملفات الدفعات؟. وبعد ومع ذلك، لجعلها تعمل، ستحتاج إلى محرر نصوص لا يترجم CR إلى CR + LF.

اكتب:

@echo First Line

ثم باستخدام NumLock، اضغط باستمرار على مفتاح ALT واكتب 10 على لوحة المفاتيح الرقمية قبل إصدار Alt (أنت يجب استخدم لوحة المفاتيح الرقمية، وليس مفاتيح رقم الصف العلوي). سيؤدي ذلك إلى إدراج حرف CR. ثم اكتب السطر الثاني. اعتمادا على محرر الخاص بك وكيف يتعامل مع Cr مقارنة مع CR + LF، قد تحصل على:

@echo First Line◙Second Line

أو

@echo First Line
Second Line

يعمل هذا من سطر الأوامر وسيعمل في ملف دفعي لفترة طويلة طالما أن محرر النصوص لا يترجم CR إلى CR + LF (الذي يقوم برامج Windows / DOS به إلا إذا قمت بتكوينها لا). إذا تم تحويل CR إلى CR + LF، أو إذا كنت تستخدم LF فقط، فسيتم تفسير السطر الثاني كأمر جديد.

ومع ذلك، لا أستطيع أن أرى لماذا سيكون هذا أفضل من ذلك ببساطة:

@echo First Line
@echo Second Line

ahaha،

أعتقد أنني عملت شيئا قريبا بما فيه الكفاية ...

echo hello&echo.&echo world

ينتج عنه:

أهلا

العالمية

صدى صوت.أوصدى صوت(

سوف تفعل خط جديد فارغ. آمل أن يكون هذا مفيدا.

لقد وجدت هذا بالمعلومات للغاية، لذلك أراد نشر مثال أفضل باستخدام الإجابات المقدمة

هذا يوفر رسالة استخدام تنسيق بشكل جيد

if "%1" == """" goto usage

:usage
 echo  USAGE: %0 [Set properties using -D flag] [Ant Task to Run]  &
 echo.                                                             &
 echo        Availble Command line properties                      &
 echo        --------------------------------                      &  
...

أعتقد أنه غير ممكن. يمكنك فقط تجربة حرف ASCII على هذا:http://www.asciable.com/ولكن هذا سوف يحطم ملف الدفعة الخاصة بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top