سؤال

لدي ملف (directories.txt) مع أسماء الأدلة، كل منها على سطر واحد وأحب توسيع الخط

C:\Documents and Settings\%USERNAME%\My Documents

في البرنامج النصي الخاص بي إلى اسم المستخدم الحقيقي الذي يقوم بتشغيل البرنامج النصي.ومع ذلك فإن الصدى يخرج تمامًا مثل الخط و %USERNAME% لا يتوسع.

FOR /f "tokens=*" %%X IN (directories.txt) DO (
    ECHO %%X
)

يعرض الصدى "C:\Documents and Settings\%USERNAME%\My Documents" بدلاً من C:\Documents and Settings\ com.janco \مستنداتي

أيه أفكار؟

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

المحلول

لقد تمكنت من القيام بذلك باستخدام استبدال المتغير:

SETLOCAL ENABLEDELAYEDEXPANSION

FOR /f "tokens=*" %%X IN (directories.txt) DO (
    SET DIR=%%X
    ECHO !DIR:%%USERNAME%%=%USERNAME%!
)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top