Terminal: Windows Terminal: افتح Terminal في المجلد الحالي عن طريق أمر واحد

تم إنشاؤها على ٩ مايو ٢٠١٩  ·  43تعليقات  ·  مصدر: microsoft/terminal

يمكنني حاليًا فتح cmd وowershell في المجلد الحالي عن طريق كتابة cmd أو powershell في شريط عنوان المستكشف (الذي يفتح عبر CTRL + D ، لذا فهو أنيق وسريع حقًا).

سيكون من الرائع أن يكون هذا ممكنًا أيضًا مع Windows Terminal الجديد. ولكن نظرًا لأنه تطبيق Windows Store ، لا يمكنني العثور على طريقة سهلة لإضافته إلى PATH. كما أنه لا يحترم المجلد الحالي عند فتحه. يبدأ دائمًا في المجلد الافتراضي ( C:\WINDOWS\system32 لـ cmd و ~ لـ Ubuntu).

سيكون رائعًا إذا كان هذا ممكنًا:

  • اجعل من الممكن إضافة Windows Terminal إلى PATH.
  • افتح سطر الأوامر في المجلد الحالي في Windows Terminal.

سيكون من الجيد أيضًا فتحه بأمر قصير.
يسمى الملف القابل للتنفيذ حاليًا WindowsTerminal . سيكون من الرائع أن نكتب شيئًا مثل term .

Resolution-Answered

التعليق الأكثر فائدة

اعتبارًا من الإصدار 0.5 ، لن يعمل ذلك بعد الآن. ستحتاج إلى تعيين "startingDirectory": null حتى يعمل هذا بالفعل. هذا الإصلاح تراجع عن غير قصد في # 2515.

ال 43 كومينتر

ماذا يحدث إذا استخدمت wt.exe ؟

https://github.com/microsoft/Terminal/blob/af7316c130059ba15fe16ff0d13608d956a2b449/src/cascadia/CascadiaPackage/Package.appxmanifest#L51

يجب أن يقوم الاسم المستعار بالفعل بتشغيل WindowsTerminal ، لكنني لست متأكدًا مما إذا كان سيتم تشغيله في المسار الذي تحدده

joandrsn هذا رائع ، لم أكن أعرف. شكرا.

@ joandrsn شكرا! حتى أنه يتم إطلاقه في الدليل الحالي!

كيف تقوم بتمرير مسار دليل إلى ملف wt.exe. شيء من هذا القبيل:

wt.exe "C:\GitHub"

تمت المحاولة ولكن يفتح دائمًا في المجلد الافتراضي لكل من CMD و PowerShell.

يمكنني فتح WSL Ubuntu shell في المجلد الحالي بـ ubuntu run . لكن يفتح دائمًا wt في المجلد الافتراضي

إزالة startingDirectory من ملفاتك الشخصية. json.

مرحبًا @ DHowett-MSFT ،
هل هناك طريقة لطلب Windows Terminal فتح علامة تبويب جديدة في نفس المجلد مثل علامة التبويب الحالية؟ أريد نفس السلوك الموجود على Mac OS X : https://apple.stackexchange.com/questions/178017/how-do-i-open-a-new-terminal-window-for-same-directory -ك- النافذة الحالية.
شكرا لك مقدما!

إزالة startingDirectory من ملفاتك الشخصية. json.

@ DHowett-MSFT ، هذا لا يعمل في أحدث إصدار 0.5.2661.0 :(

إزالة startingDirectory من ملفاتك الشخصية. json.

بالنسبة لي ، لا يعمل أيضًا :(

اعتبارًا من الإصدار 0.5 ، لن يعمل ذلك بعد الآن. ستحتاج إلى تعيين "startingDirectory": null حتى يعمل هذا بالفعل. هذا الإصلاح تراجع عن غير قصد في # 2515.

أود أيضًا فتح علامات تبويب جديدة في الدليل الحالي

اعتبارًا من الإصدار 0.5 ، لن يعمل ذلك بعد الآن. ستحتاج إلى تعيين "startingDirectory": null حتى يعمل هذا بالفعل. هذا الإصلاح تراجع عن غير قصد في # 2515.

@ zadjii-msft ، هذا لا يعمل في الإصدار 0.5.2681.0

اعتبارًا من الإصدار 0.5 ، لن يعمل ذلك بعد الآن. ستحتاج إلى تعيين "startingDirectory": null حتى يعمل هذا بالفعل. هذا الإصلاح تراجع عن غير قصد في # 2515.

لا يعمل مع 0.5.2762.0 إما ..
لقد حاولت إزالة القيمة ، وضبطها على فارغة .. كلاهما لا يغير شيئًا ..

لكي نكون واضحين ، _ إزالة startingDirectory بدلاً من تعيينه إلى null _ ليست ميزة تعود ؛ نحن نبحث عن طرق بديلة فيما يتعلق بموعد تطبيق دليل التشغيل بالضبط ، ولكن الإعداد سيكون دائمًا قادرًا على منعه عن طريق تعيينه على قيمة خالية.

اعتبارًا من الإصدار 0.5 ، لن يعمل ذلك بعد الآن. ستحتاج إلى تعيين "startingDirectory": null حتى يعمل هذا بالفعل. هذا الإصلاح تراجع عن غير قصد في # 2515.

لا يعمل مع 0.5.2762.0 إما ..
لقد حاولت إزالة القيمة ، وضبطها على فارغة .. كلاهما لا يغير شيئًا ..

"startingDirectory": null يعمل بالنسبة لي - يجب وضعه ضمن ملف تعريف محدد ، بدلاً من أن يكون عنصرًا على مستوى الجذر

@ DHowett-MSFT يبدو لي أن طريقة وجود إعدادات في ملف التكوين ( startingDirectory ) والتي يمكن تجاوزها بتمرير معلمات سطر الأوامر شائعة جدًا بشكل عام. ربما لا أحصل على المشكلة هنا :)

إذا تذكرت محادثة الشهر الماضي ، فقد كانت:

إن مسح إعداد "دليل البدء" عن طريق حذفه من ملف تعريف المستخدم الخاص بك (في الحالة المحددة لملف تعريف أو ثلاثة ملفات تعريف افتراضية مشحونة) ، بدلاً من تعيينه على null لمسحه ، ليس ميزة من شأنها أن تكون العودة.

يحدد 607 أننا سندعم وسيطات سطر الأوامر ، أحدها سيكون تجاوز دليل البداية.

يبدو أن هذا يتماشى مع فهمي لفهمك لهذه المحادثة. :ابتسامة:

بالنسبة لي إعداد "دليل البدء": "." لا وظيفة.

هل هناك مشكلة أخرى تتعلق بفتح الجهاز الافتراضي للمحطة بحيث يقول "%USERPROFILE%" ولكن null إذا تم إطلاقه من مستكشف Windows؟

carlinmack لا أعتقد أن هذا ضروري تمامًا.

  • يتم تعيين Windows Terminal افتراضيًا على الدليل الرئيسي للمستخدم إذا قمت بتشغيله عبر اختصار قائمة ابدأ أو عن طريق كتابة "wt" في Win + R. مما يعني أنك إذا كنت تستخدم "startingDirectory": "." فإنها ستظل مفتوحة في المجلد الرئيسي للمستخدم ( %USERPROFILE% ).
  • إذا قمت بتشغيل wt من شريط عنوان Windows Explorer ، أو عبر شيء مثل cmd.exe (أو قشرة أخرى) انتقلت إلى مجلد معين ، فإن "startingDirectory": "." سيضمن فتح Windows Terminal في الدليل الذي كنت فيه.
  • ومع ذلك ... سيتم فتح أي علامات تبويب إضافية تفتحها في جلسة Windows Terminal في "دليل العمل الحالي" من لحظة الإطلاق ، مما قد يكون مصدر إزعاج بسيط.

يتم تعيين Windows Terminal افتراضيًا على الدليل الرئيسي للمستخدم إذا قمت بتشغيله عبر اختصار قائمة ابدأ أو عن طريق كتابة "wt" في Win + R. مما يعني أنه إذا كنت تستخدم "startDirectory": "." لا يزالون مفتوحين في المجلد الرئيسي للمستخدم (٪ USERPROFILE٪).

يتم تعيينه افتراضيًا إلى system32 في هذه الحالة بالنسبة لي.

torpederos شكرا

"دليل البدء": " . "
"دليل البدء": "٪ __ CD __ ٪"

التحقق. كلاهما يعمل بشكل جيد بالنسبة لي. الحل الخاص بي .

لقد كتب RickStrahl مدونة جيدة بخصوص هذه المسألة. تحقق من ذلك .

في حالتي هذا عمل.

"profiles":
    {
        "defaults":
        {
            "startingDirectory": "."
        },

"startingDirectory": "." يعمل ولكن عندما أقوم بفتح المحطة الطرفية من البحث ، فإنها تكون افتراضية إلى system32.
هل هناك أي طريقة للفتح في دليل المستخدم عندما لا يتم تحديد المسار؟

"startingDirectory": "." يعمل ولكن عندما أقوم بفتح المحطة الطرفية من البحث ، فإنها تكون افتراضية إلى system32.
هل هناك أي طريقة للفتح في دليل المستخدم عندما لا يتم تحديد المسار؟

كان لي نفس المشكلة. لقد أصلحته عن طريق إضافة السطر التالي في نهاية ملف bashrc الخاص بي.

export CURR_DIRECTORY=`pwd`
if [ "$CURR_DIRECTORY" = "/mnt/c/WINDOWS/system32" ]; then
    cd ~
fi

كان حل manishprivet رائعًا ، إلا أنه من أجل العمل بشكل صحيح ، قمت بتغيير system32 إلى System32 . من الجيد تشغيل pwd ونسخ الناتج.

لقد وجدت حلاً عن طريق إضافة "فتح Terminal هنا" للنقر بزر الماوس الأيمن.

الخطوة 1:-
قم بإزالة دليل البداية من settings.json لجميع ملفات التعريف.

الخطوة 2:-
أضف المحطة الطرفية المفتوحة للنقر بزر الماوس الأيمن وفقًا لهذا المنشور.
https://github.com/microsoft/terminal/issues/1060#issuecomment -497539461
لقد قمت بتغيير قيمة التسجيل الثانية من @="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe" إلى @="C:\Users\[your username]\AppData\Local\Microsoft\WindowsApps\wt.exe -d ."

السلوك بعد التعديلات:
لذلك عندما أفتح المحطة الطرفية باستخدام البحث / شريط المهام / الاختصار ، سيتم فتحها في مجلد المستخدم الخاص بي.
كلما أردت فتح المحطة الطرفية باستخدام المستكشف ، انقر بزر الماوس الأيمن وحدد الخيار Windows terminal here .

ملاحظة 1: لا تنس إضافة -d . في نهاية قيمة التسجيل الثانية ، وإلا فلن يعمل هذا.

ملاحظة 2: كتابة wt في شريط المستكشف لا يزال يفتح المحطة الطرفية في system32. لا يزال يتعين عليك كتابة wt -d . إذا كنت تريد فتح Terminal في المجلد الحالي باستخدام "شريط المستكشف".

فقط اضف

"startingDirectory": null

يعمل مع Wt V1.0 بشكل صحيح.

إذا كنت تفضل عرض wt في SHIFT-Menu تمامًا مثل "فتح نافذة PowerShell هنا" أو فتح خيارات WSL ، فيمكنك دمج ملف التسجيل هذا في السجل الخاص بك.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal here"
"ShowBasedOnVelocityId"=dword:00639bc8
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\[YourUserName]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

يرجى ملاحظة أن المعلمة startingDirectory يجب أن تنتقل إلى هذا المكان في بنية JSON:

{
    //...

    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.

            // Attempt to start in current directory
            // https://github.com/microsoft/terminal/issues/620
            "startingDirectory": "."
        }
    }
}

ما زلت لا أرى حلاً يقوم بما يلي:

  1. اسمح لي بتحديد دليل افتراضي عندما أقوم بفتح Terminal من قائمة البداية.
  2. عند تشغيل wt.exe من نافذة المستكشف ، سيتم فتح Terminal على هذا الدليل.

هل هذا ممكن؟

من تحقيقاتي ، لم يكن هذا شيئًا ممكنًا تقنيًا.

إذا كنت تريد أن يعمل كلاهما ، فستحتاج إلى استخدام wt -d . في شريط عنوان المستكشف. سيسمح هذا بتشغيل Terminal من قائمة البداية ويعمل مربع التشغيل كما كان من قبل ، ولا يزال يتيح لك فتح Terminal في CWD في المستكشف

من الاستكشاف الأولي هنا هو ما وجدته بناءً على https://docs.microsoft.com/en-us/windows/terminal/command-line-arguments؟

المقاربة 1:

  1. اضغط على مفتاح WIN + R.
  2. اكتب wt -d D:\SomeDirectory

سيؤدي هذا إلى فتح الغلاف الافتراضي الموجود في settings.json مع هذا الدليل
ملاحظة: اختر المسار استنادًا إلى نظام التشغيل الخاص بالصدفة افتراضيًا

المقاربة 2:

  1. انتقل إلى المجلد المطلوب باستخدام File Explorer
  2. في شريط العنوان للمجلد المطلوب ، اكتب wt -d .

AndeYashwanth هذا يعمل بشكل مثالي ، شكرا لك. يمكنني الآن فتحه في دليل المستخدم الخاص بي من شريط المهام وفتحه فقط في الدليل الحالي عندما أنقر بزر الماوس الأيمن على 😎

بفضل @ 29kartik نهج 1 عملت بالنسبة لي. لقد تمكنت من جعل GitKraken يستخدم أمرًا طرفيًا مخصصًا wt -d %d بحيث يتم الآن تشغيل اختصار المحطة الطرفية WT في دليل الريبو الحالي. 💯

لقد أضفت هذا لفتحه في هذا المجلد المحدد

 "startingDirectory": "C:\\webdev"

هذا هو رأيي عبر اختصار قائمة السياق: https://gist.github.com/kmantel/9cd6bf9f0fb25694a5b08119817281b7

nickraphael :

ما زلت لا أرى حلاً يقوم بما يلي:

  1. اسمح لي بتحديد دليل افتراضي عندما أقوم بفتح Terminal من قائمة البداية.
  2. عند تشغيل wt.exe من نافذة المستكشف ، سيتم فتح Terminal على هذا الدليل.

الحصول على هذا في settings.json :

{
    "profiles": {
        "defaults": {
            "startingDirectory": "."
        }
    }
}

يجعل Windows Terminal يبدأ في الدليل الحالي بالنسبة لي عند إطلاقه من مربع موقع Explorer أو win + r أو من برامج أخرى (VS Code وما إلى ذلك). ومع ذلك ، عند البدء من قائمة "ابدأ" ، إما عن طريق البحث أو الانتقال إلى الاختصار ، فإنه يبدأ بـ C:\WINDOWS\system32 .

لإصلاح مشكلة القائمة "ابدأ" ، قمت بتثبيت الاختصار على wt.exe في قائمة ابدأ ( where wt يخبرنا عن موقعه) ، أعدت تسمية الاختصار حسب رغبتي ثم قمت بتعديله ليكون:

Start in: %USERPROFILE%

الآن يبدأ Windows Terminal في دليلي الرئيسي عند تشغيله من قائمة ابدأ.

سيكون من الجيد ألا يغير Windows Terminal دليله افتراضيًا لجعله أكثر شفافية. لا توجد العديد من البرامج الأخرى التي تقوم بذلك.

أتساءل أيضًا عما إذا كان الاختصار إلى wt.exe يمكن أن يتم بواسطة المثبت تلقائيًا.

لذلك ، لم تنجح أي من الإجابات المذكورة أعلاه في حالة الاستخدام الخاصة بي. ما أود فعله هو فتح علامة تبويب جديدة باستخدام alt+shift+- والاحتفاظ بالمجلد السابق. حاولت استخدام null و "." و "%__CD__%" كقيم لـ "startingDirectory" في أماكن مختلفة من JSON. أنا أستخدم الإصدار 1.4.2652.0 من Windows Terminal Preview.

أحد الحلول الجيدة هو أن يكون لديك خيار جديد مثل "keepCurrentDirectoryOnNewTab": true أو شيء من هذا القبيل. الطريقة الأخرى (التي يستخدمها كيتي) هي الحصول على قيمة خاصة تسمى current عند تحديد الدليل.

frankitox ربما تكون مهتمًا مشكلة تم خداعها في هذا الموضوع
image

كان هناك نقاش كامل حول سبب صعوبة أو شبه المستحيل القيام بذلك بشكل صحيح على النوافذ.

الإصدار: 1.3.2651.0

في حالتي يعمل.

    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
            "startingDirectory": "."
        },

أيضًا ، يمكنك استخدام "startingDirectory": "%__CD__%"

من المحتمل أن أكون متأخرًا جدًا على الحفلة ، ولكن في Windows 10 Pro 20H2 ، يمكنك فقط كتابة wt في شريط العناوين وستقوم بالخدعة.

كيف تقوم بتمرير مسار دليل إلى ملف wt.exe. شيء من هذا القبيل:

wt.exe "C:\GitHub"

لا أعرف ما إذا كنت قد وجدت -d والمسار

wt -d .

يعمل بشكل جيد في WSL2

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

TayYuanGeng picture TayYuanGeng  ·  3تعليقات

ghvanderweg picture ghvanderweg  ·  3تعليقات

zadjii-msft picture zadjii-msft  ·  3تعليقات

wkbrd picture wkbrd  ·  3تعليقات

mrmlnc picture mrmlnc  ·  3تعليقات