นามแฝงในพรอมต์คำสั่งของ Windows


358

ฉันเพิ่มลงnotepad++.exeในตัวแปร Path in Environment ของฉันแล้ว

ตอนนี้ในพร้อมท์คำสั่งเปิดnotepad++.exe filename.txt filename.txtแต่ฉันต้องการทำเพียงnp filename.txtเพื่อเปิดไฟล์

DOSKEY np=notepad++ฉันพยายามใช้ แต่มันเพิ่งจะนำไปสู่ระดับแนวหน้าของ notepad ++ ที่เปิดอยู่แล้วโดยไม่ต้องเปิดไฟล์ ฉันจะทำให้มันเปิดไฟล์ได้อย่างไร

ขอบคุณ


2
เปลี่ยนชื่อปฏิบัติการเป็นอะไรก็ได้ที่คุณต้องการ คุณสามารถทำได้จาก File Explorer!
IgorGanapolsky

คำตอบ:


442

เพื่อเพิ่มคำตอบของจอช

คุณอาจทำให้นามแฝงคงอยู่ด้วยขั้นตอนต่อไปนี้

  1. สร้างไฟล์. bat หรือ. cmd ด้วยDOSKEYคำสั่งของคุณ
  2. เรียกใช้ regedit แล้วไปที่ HKEY_CURRENT_USER\Software\Microsoft\Command Processor
  3. เพิ่มรายการค่าสตริงด้วยชื่อAutoRunและพา ธเต็มของไฟล์. bat / .cmd ของคุณ

    ตัวอย่างเช่นการ%USERPROFILE%\alias.cmdแทนที่เซ็กเมนต์เริ่มต้นของพา ธ ด้วย%USERPROFILE%มีประโยชน์สำหรับการซิงค์ระหว่างเครื่องหลายเครื่อง

วิธีนี้ทุกครั้งที่มีการเรียกใช้ cmd นามแฝงจะถูกโหลด

สำหรับ Windows 10ให้เพิ่มรายการลงในHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processorแทน

เพื่อความสมบูรณ์นี่คือเทมเพลตเพื่อแสดงประเภทของนามแฝงที่อาจพบว่ามีประโยชน์

@echo off

:: Temporary system path at cmd startup

set PATH=%PATH%;"C:\Program Files\Sublime Text 2\"

:: Add to path by command

DOSKEY add_python26=set PATH=%PATH%;"C:\Python26\"
DOSKEY add_python33=set PATH=%PATH%;"C:\Python33\"

:: Commands

DOSKEY ls=dir /B
DOSKEY sublime=sublime_text $*  
    ::sublime_text.exe is name of the executable. By adding a temporary entry to system path, we don't have to write the whole directory anymore.
DOSKEY gsp="C:\Program Files (x86)\Sketchpad5\GSP505en.exe"
DOSKEY alias=notepad %USERPROFILE%\Dropbox\alias.cmd

:: Common directories

DOSKEY dropbox=cd "%USERPROFILE%\Dropbox\$*"
DOSKEY research=cd %USERPROFILE%\Dropbox\Research\

  • โปรดทราบว่า$*ไวยากรณ์ทำงานหลังจากสตริงไดเรกทอรีเช่นเดียวกับปฏิบัติการที่ใช้ในการขัดแย้ง ดังนั้นในตัวอย่างข้างต้นที่ผู้ใช้กำหนดคำสั่งชี้ไปที่ไดเรกทอรีเดียวกันกับdropbox researchresearch
  • ดังที่ Rivenfall ชี้ให้เห็นเป็นความคิดที่ดีที่จะรวมคำสั่งที่อนุญาตให้แก้ไขalias.cmdไฟล์ได้อย่างสะดวก ดูaliasด้านบน หากคุณอยู่ในเซสชั่น cmd ให้ป้อนcmdเพื่อรีสตาร์ท cmd และโหลดalias.cmdไฟล์ใหม่

เมื่อฉันค้นหาอินเทอร์เน็ตเพื่อหาคำตอบของคำถามการสนทนานั้นเน้นไปที่การคงอยู่เท่านั้นหรือในการใช้งานของ DOSKEY เท่านั้น ฉันหวังว่าบางคนจะได้รับประโยชน์จากสองด้านนี้ด้วยกันที่นี่!


นี่เป็นไฟล์ที่จะช่วยให้คุณติดตั้ง.reg alias.cmdมันถูกตั้งค่าเป็นตัวอย่างสำหรับโฟลเดอร์ดรอปบ็อกซ์ตามที่แนะนำไว้ข้างต้น

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="%USERPROFILE%\\alias.cmd"

สำหรับแอปพลิเคชันที่มีผู้ใช้คนเดียวดังกล่าวข้างต้นจะทำ อย่างไรก็ตามมีสถานการณ์ที่จำเป็นต้องตรวจสอบว่าalias.cmdมีอยู่ก่อนในคีย์รีจิสทรี ดูตัวอย่างด้านล่าง

ในC:\Users\Public\init.cmdไฟล์โฮสต์ที่อาจมีการกำหนดค่าผู้ใช้ข้าม:

@ECHO OFF
REM Add other configurations as needed
IF EXIST "%USERPROFILE%\alias.cmd" ( CALL "%USERPROFILE%\alias.cmd" )

คีย์รีจิสทรีควรได้รับการปรับปรุงให้สอดคล้องกับC:\Users\Public\init.cmdหรือโดยใช้.regไฟล์:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="C:\\Users\\Public\\init.cmd"

2
สิ่งที่ฉันต้องการ ทำงานได้อย่างสมบูรณ์ ฉันแนะนำให้เพิ่ม doskey เพื่อแก้ไขไฟล์
env.cmd จริงๆ

8
นี่คือไร้เดียงสาและไม่มีประสิทธิภาพ ไฟล์ชุดการทำงานอัตโนมัติจะทำงานสำหรับทุกอินสแตนซ์ของ cmd.exe รวมถึงsystemฟังก์ชั่น มันจำเป็นต้องออกหากมีการกำหนดตัวแปรบางอย่าง (เช่นAUTORUN) มิฉะนั้นตั้งค่าสภาพแวดล้อม ( set AUTORUN=1) และตั้งค่า doskey ในรอบเดียวโดยใช้ตัวเลือก macrofile แทนการเรียกใช้ doskey.exe เพื่อกำหนดแต่ละนามแฝง
Eryk Sun

4
@eryksun คุณสามารถโพสต์หรือลิงก์ไปยังตัวอย่างที่ไร้เดียงสาน้อยลงได้อย่างไร ฉันรู้วิธีการออกหากมีการกำหนดการทำงานอัตโนมัติ แต่สับสนกับวิธีการตั้งค่าหรือยกเลิกการตั้งค่าในครั้งแรกโดยไม่ต้องเรียกใช้ CMD
matt wilkie

3
อะไรคือสิ่งทดแทนHKEY_CURRENT_USER\Software\Microsoft\Command Processorในยุคปัจจุบัน? ฉันไม่สามารถดูเหมือนจะหาเส้นทางใน regedit นั้นอีกต่อไป
ม.ค.

4
ฉันชอบสิ่งนี้. ตัวเลือกที่คล้ายกันคือใส่ในการทำงานอัตโนมัติ: doskey /macrofile="%USERPROFILE%\alias". และให้ใส่ชื่อแทนในไฟล์ 'alias' โดยไม่มีส่วน 'doskey' วิธีการแก้ปัญหาที่ผู้ดูแลระบบสามารถใช้เพื่อ จำกัด คำจำกัดความการทำงานอัตโนมัติให้เป็นนามแฝงที่ผู้ใช้สามารถทำได้ด้วยตนเอง ป้องกันผู้ใช้จากการทำสิ่งอื่นอัตโนมัติ
user1708042

237

คุณต้องผ่านพารามิเตอร์ลองสิ่งนี้:

doskey np=notepad++.exe $*

แก้ไข (ตอบสนองต่อความคิดเห็นของ Romonov) ถาม: มีวิธีใดบ้างที่ฉันสามารถใช้พรอมต์คำสั่งเพื่อให้ฉันไม่ต้องเรียกใช้งานใหม่ทุกครั้งที่เปิดพรอมต์คำสั่งใหม่

doskey เป็นคำสั่งแบบข้อความที่ถูกตีความโดยตัวประมวลผลคำสั่ง (เช่น cmd.exe) มันไม่ทราบว่าจะแก้ไขสถานะในกระบวนการอื่น ๆ (โดยเฉพาะอย่างยิ่งคำสั่งที่ยังไม่ได้เริ่ม)

คนที่ใช้doskeyในการตั้งค่าสภาพแวดล้อมเชลล์คำสั่งเริ่มต้นมักใช้/Kตัวเลือก (มักผ่านทางลัด) เพื่อเรียกใช้ไฟล์แบตช์ซึ่งทำการตั้งค่าทั่วไปทั้งหมด (เช่นชื่อของหน้าต่างสีและอื่น ๆ )

cmd.exe /K env.cmd

env.cmd:

title "Foo Bar"
doskey np=notepad++.exe $*
...

7
ใช้งานได้กับพรอมต์คำสั่งที่ฉันเรียกใช้คำสั่งนี้ แต่ถ้าฉันปิดหน้าต่างและเปิดพรอมต์คำสั่งใหม่ ไม่จำคำสั่ง np มีวิธีใดบ้างที่ฉันสามารถทำให้พร้อมรับคำสั่งจดจำได้ดังนั้นฉันไม่ต้องเรียกใช้งานใหม่ทุกครั้งที่เปิดพรอมต์คำสั่งใหม่
Romonov

5
พฤติกรรมเดียวกันโดยไม่เปลี่ยนเส้นทาง:doskey npp="C:\Program Files (x86)\Notepad++\notepad++.exe" $*
Matt Bierner

5
doskey.exe ไม่มีส่วนเกี่ยวข้องกับ cmd.exe มันตั้งค่านามแฝงสำหรับปฏิบัติการปัจจุบันหรือปฏิบัติการที่ระบุในหน้าต่างคอนโซลซึ่งโฮสต์โดยอินสแตนซ์ของ conhost.exe ชื่อแทนของคอนโซลจะจับคู่และแทนที่ที่จุดเริ่มต้นของบรรทัดอินพุตก่อนที่แอปพลิเคชันไคลเอนต์ (เช่น cmd.exe หรือ powershell.exe) จะอ่านบรรทัด พวกเขาไม่สามารถใช้โดยทั่วไปเป็นคำสั่งเช่นไม่ได้อยู่ในไฟล์แบทช์หรือไพพ์ลงใน
Eryk Sun

สวัสดีฉันได้ใช้สิ่งนี้กับ cmder เพื่อเปิด phpstorm ... มันเปิด phpstorm แต่มันยังคงเปิดโครงการที่เปิดล่าสุดของฉันและไม่ใช่ไดเรกทอรีโครงการที่ฉันอยู่ในขณะนี้ ... ฉันจะให้เปิด DIR ที่ฉันอยู่ได้อย่างไร
PA-GW

113

หากคุณต้องการคำสั่งง่ายๆคุณสามารถทำตามขั้นตอนเหล่านี้:

  1. สร้างโฟลเดอร์ชื่อC: \ Aliases
  2. เพิ่มC: \ Aliasesในพา ธ ของคุณ (ดังนั้นจะพบไฟล์ใด ๆ ในนั้นทุกครั้ง)
  3. สร้างไฟล์. batใน C: \ Aliases สำหรับนามแฝงแต่ละรายการที่คุณต้องการ

อาจ overkill แต่แตกต่างจากคำตอบ (ยอดเยี่ยมมิฉะนั้น) จาก @Argyll นี้แก้ปัญหาการโหลดนี้ทุกครั้ง

ตัวอย่างเช่นฉันมีไฟล์ชื่อdig2.bat ที่มีดังต่อไปนี้:

@echo off
echo.
dig +noall +answer %1

ไฟล์npของคุณจะมีดังต่อไปนี้:

@echo off
echo.
notepad++.exe %1

จากนั้นเพียงเพิ่มโฟลเดอร์C: \ Aliasesให้กับตัวแปรสภาพแวดล้อม PATH ของคุณ หากคุณมี CMD หรือ PowerShell เปิดอยู่แล้วคุณจะต้องเริ่มต้นใหม่

FWIW ฉันมีนามแฝงประมาณ 20 ชื่อ (แยกไฟล์. bat) ในไดเรกทอรี C: \ Aliases - ฉันเพิ่งสร้างใหม่ตามความจำเป็น อาจไม่ใช่สิ่งที่ประณีตที่สุด แต่ก็ใช้ได้ดี

UPDATE : ต่อข้อเสนอแนะที่ดีเยี่ยมจาก @Mav ผู้ใช้ก็จะยิ่งดีกว่าที่จะใช้งาน% *มากกว่า1%เพื่อให้คุณสามารถส่งผ่านไฟล์หลายคำสั่งเช่น:

@echo off
echo.
notepad++.exe %*

ด้วยวิธีนี้คุณสามารถทำสิ่งนี้:

np c:\temp\abc.txt c:\temp\def.txt c:\temp\ghi.txt

และมันจะเปิดทั้ง 3 ไฟล์


4
โดยส่วนตัวฉันใช้วิธีนี้เป็นเวลานาน doskeyนี้เป็นหนึ่งเช่นเรื่องง่ายมากที่จะทำวิธีการถ้ามีคนไม่ต้องการที่จะไปในทางของ
bantya

4
ข้อดีอย่างหนึ่งของวิธีการนี้ (ไฟล์ cmd เป็นนามแฝง) คือถ้าคุณใช้ WSL (ระบบย่อย Linux สำหรับ Windows) cmds เหล่านี้มีอยู่ใน bash เช่นกัน แม้ว่าบ่อยครั้ง (ขึ้นอยู่กับสิ่งที่คุณเป็นนามแฝง) คุณต้องทำการจัดการเส้นทางโดยใช้ wslpath.sh หรือคล้ายกันก่อนที่คุณจะเรียกไฟล์ cmd
Alex Perry

1
@Roryhewitt โอ้ใช่การระบุเส้นทางแบบเต็มไปยังที่ls.exeควรจะทำงานแน่นอน จุดดี. ฉันได้ใช้ทางเลือก doskey ว่า
Qwerty

4
อาจต้องการเพิ่ม% * แทน% 1 เพื่อส่งผ่านอาร์กิวเมนต์ทั้งหมดเมื่อเทียบกับข้อแรก
Mav

1
ที่ดี! ตอนนี้ฉันสามารถมี PHP โดยไม่จำเป็นต้องติดตั้งเพียงใช้ devilbox สำหรับนักเทียบท่าและเพิ่มdocker exec --user devilbox dvlbx_php_1 php %*
Alvaro Flaño Larrondo

38

อีกทางหนึ่งคุณสามารถใช้cmderซึ่งช่วยให้คุณเพิ่มนามแฝงเช่นเดียวกับลินุกซ์:

alias subl="C:\Program Files\Sublime Text 3\subl.exe" $*

12
แม้ว่าสิ่งนี้จะไม่ตอบคำถาม เป็นสิ่งสำคัญสำหรับผู้ที่มีพื้นฐาน Linux ต้องเข้าใจว่ามีทางเลือกอื่นสำหรับ Windows CMDs ที่สามารถตอบสนองความต้องการได้ทันที
โจเซฟเคซี่ย์มี. ค.

1
มีทางเลือกค่อนข้างน้อย Git สำหรับ Windows มาพร้อมกับ "git-bash" หนึ่งรายการ
cowlinator

หากต้องการเพิ่มนามแฝงใน Cmder ดูตัวอย่างที่นี่
jdhao

สวัสดีฉันได้ใช้สิ่งนี้กับ cmder เพื่อเปิด phpstorm ... มันเปิด phpstorm แต่มันยังคงเปิดโครงการที่เปิดล่าสุดของฉันและไม่ใช่ไดเรกทอรีโครงการที่ฉันอยู่ในขณะนี้ ... ฉันจะให้เปิด DIR ที่ฉันอยู่ได้อย่างไร
PA-GW

29

ระบุว่าคุณได้เพิ่ม notepad ++. exe ลงในตัวแปร PATH ของคุณมันง่ายมาก สร้างไฟล์ในโฟลเดอร์ System32 ของคุณที่np.batมีรหัสต่อไปนี้:

@echo off
call notepad++.exe %*

การ%*ส่งผ่านอาร์กิวเมนต์ทั้งหมดที่คุณกำหนดให้กับnpคำnotepad++.exeสั่ง

แก้ไข: คุณจะต้องเข้าถึงผู้ดูแลระบบเพื่อบันทึกไฟล์ไปยังโฟลเดอร์ System32 ซึ่งค่อนข้างแปลกสำหรับฉัน ฉันเพิ่งสร้างไฟล์ที่อื่นและย้ายไปที่ System32 ด้วยตนเอง


ฉันมีโฟลเดอร์ของไฟล์. bat เล็ก ๆ อยู่แล้วดังนั้นฉันชอบสิ่งนี้ดีกว่า messing กับรีจิสทรีหรือไฟล์. cmd
Rich

1
ฉันเพิ่งลองมัน แต่มันก็ไม่ทำงานเหมือนกันกับการเรียก Notepad ++ โดยตรง หากคุณใช้อักขระตัวแทนในชื่อไฟล์ที่คุณกำลังเปิดและเรียกใช้ NPP โดยตรงการทำงานเช่นคุณสามารถทำได้"notepad++.exe *somefiles*"และไฟล์ที่ตรงกันจะเปิดขึ้น เมื่อฉันลองใช้ไฟล์แบตช์ที่คุณแนะนำนั่นคือ"npp *somefiles*"มันเปิดอินสแตนซ์ NPP แต่ไม่ได้เปิดไฟล์ที่ฉันส่ง ความคิดใด ๆ
SSilk

14

นอกจากนี้คุณสามารถสร้าง alias.cmd ในพา ธ ของคุณ (เช่น C: \ Windows) ด้วยคำสั่ง

@echo %2 %3 %4 %5 %6 > %windir%\%1.cmd

เมื่อคุณทำเช่นนั้นคุณสามารถทำสิ่งนี้:

alias nameOfYourAlias commands to run 

และหลังจากนั้นคุณสามารถพิมพ์ในบรรทัดคอมม่า

nameOfYourAlias 

สิ่งนี้จะดำเนินการ

commands to run 

แต่วิธีที่ดีที่สุดสำหรับฉันคือเพียงเพิ่มเส้นทางของโปรแกรม

setx PATH "%PATH%;%ProgramFiles%\Sublime Text 3" /M 

และตอนนี้ฉันก็ประเสริฐ

subl index.html

9

ชื่อแทนคอนโซลใน Windows 10

ในการกำหนดชื่อแทนคอนโซลให้ใช้Doskey.exeเพื่อสร้างแมโครหรือใช้AddConsoleAliasฟังก์ชัน

doskey

doskey test=cd \a_very_long_path\test

หากต้องการส่งพารามิเตอร์เพิ่ม$*ให้ท้าย:doskey short=longname $*

AddConsoleAlias

AddConsoleAlias( TEXT("test"), 
                 TEXT("cd \\<a_very_long_path>\\test"), 
                 TEXT("cmd.exe"));

ข้อมูลเพิ่มเติมที่นี่คอนโซลนามแฝง , Doskey , พารามิเตอร์


7

คุณต้องการสร้างนามแฝงเพียงแค่พิมพ์:

c:\>alias kgs kubectl get svc

Created alias for kgs=kubectl get svc

และใช้นามแฝงดังนี้

c:\>kgs alfresco-svc

NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
alfresco-svc   ClusterIP   10.7.249.219   <none>        80/TCP    8d

เพียงเพิ่มalias.batไฟล์ต่อไปนี้ในพา ธ ของคุณ มันสร้างไฟล์แบตช์เพิ่มเติมในไดเรกทอรีเดียวกับตัวมันเอง

  @echo off
  echo.
  for /f "tokens=1,* delims= " %%a in ("%*") do set ALL_BUT_FIRST=%%b
  echo @echo off > C:\Development\alias-script\%1.bat
  echo echo. >> C:\Development\alias-script\%1.bat
  echo %ALL_BUT_FIRST% %%* >> C:\Development\alias-script\%1.bat
  echo Created alias for %1=%ALL_BUT_FIRST%

ตัวอย่างของแบทช์ไฟล์ที่สร้างขึ้นนี้เรียกว่าkgs.bat:

@echo off 
echo. 
kubectl get svc %* 

6

ที่จริงแล้วฉันจะไปหาคุณให้ดีกว่านี้แล้วปล่อยให้คุณใช้เทคนิคเล็กน้อยที่ฉันเคยใช้มาตั้งแต่ฉันเคยเขียนโปรแกรมเกี่ยวกับ Amiga บนใด ๆระบบใหม่ที่คุณใช้ไม่ว่าจะเป็นส่วนตัวหรืออาชีพขั้นตอนเดียวคือการสร้างสองโฟลเดอร์: และC:\BIN C:\BATCHจากนั้นแก้ไขคำสั่งพา ธ ของคุณเพื่อให้ทั้งคู่เริ่มต้นตามลำดับC:\BATCH;C:\BIN;[rest of path]แล้วปรับเปลี่ยนคำสั่งเส้นทางของคุณที่จะนำทั้งสองที่เริ่มต้นในการสั่งซื้อ

หลังจากทำเช่นนั้นแล้วหากคุณมียูทิลิตีที่ไม่จำเป็นออกไปเล็กน้อยซึ่งคุณจำเป็นต้องเข้าถึงเพื่อคัดลอกไฟล์ไปยังC:\BINโฟลเดอร์และพวกมันอยู่ในเส้นทางของคุณ หากต้องการแทนที่การมอบหมายเหล่านี้ชั่วคราวคุณสามารถเพิ่มแบตช์ไฟล์ที่มีชื่อเดียวกับไฟล์ที่เรียกใช้งานได้ไปยังC:\BATCHโฟลเดอร์และพา ธ จะค้นหาก่อนหน้าไฟล์ใน C: \ BIN ควรครอบคลุมทุกสิ่งที่คุณอาจต้องทำ

แน่นอนว่าทุกวันนี้วิธีที่ถูกต้องในการทำเช่นนี้คือการสร้างสัญลักษณ์เชื่อมต่อไปยังไฟล์ แต่ใช้หลักการเดียวกันนี้ มีโบนัสเพิ่มพิเศษเล็กน้อยเช่นกัน หากคุณต้องการที่จะนำบางสิ่งบางอย่างในระบบที่ขัดแย้งกับสิ่งที่มีอยู่แล้วในเส้นทางการวางไว้ในC:\BINหรือC:\Batchโฟลเดอร์จะทำให้ต้นฉบับดั้งเดิมว่างเปล่า - ช่วยให้คุณสามารถแทนที่สิ่งต่าง ๆ ไม่ว่าจะเป็นการชั่วคราวหรือถาวรหรือเปลี่ยนชื่อเป็นชื่อของคุณ สะดวกสบายยิ่งขึ้นด้วย - โดยไม่ต้องดัดแปลงต้นฉบับ


1
นี่เป็นคำตอบเดียวกับ roryhewitt
Jean-François Fabre

2
จริงๆแล้วมันไม่ใช่ ฉันพูดว่า 'ดีกว่า' ตัวเลือกในตัวเพื่อแทนที่หรือแทนที่การแทนที่ที่มีอยู่แล้ว การแยกไฟล์ปฏิบัติการแบบง่ายจากแบตช์ไฟล์ และวิธีการแก้ปัญหาของโรรี่ไม่ได้ระบุตำแหน่งในเส้นทางที่โฟลเดอร์ควรจะไป ส่วนใหญ่จะวางไว้ที่ส่วนท้ายของเส้นทาง อยู่ที่จุดสิ้นสุดแทนที่จะเป็นจุดเริ่มต้นทางออกของเขาจะไม่อนุญาตให้แทนที่ในตอนแรก วิธีแก้ปัญหาของ Rory นั้นใกล้เคียงกับวิธีแก้ปัญหาที่ฉันมาถึงเมื่อ 25 ปีก่อน ฉันขัดเกลารูปแบบบ้างแล้ว
David

2
อะไรก็ตาม คนที่ใช้ Amiga นั้นต้องไม่เลวร้ายนัก
Jean-François Fabre

ยุติธรรมเพียงพอ :) ในกรณีของฉันโฟลเดอร์นามแฝงคือที่จุดเริ่มต้นของเส้นทาง แต่ในกรณีใด ๆ ฉันไม่ต้องการแทนที่ค่าเริ่มต้นโดยส่วนตัว - นามแฝงของฉันมักจะมีชื่อที่แตกต่างกัน ดังนั้นฉันจึงใช้ 'dig2' และ 'digx' เป็นนามแฝงเป็น 'dig' แต่ยังคงมี 'dig' อยู่ (โดยไม่จำเป็นต้องระบุโฟลเดอร์) +1 เช่นกันสำหรับ Amiga :)
roryhewitt

ความทรงจำที่ดีฉันได้เปลี่ยนชื่อไฟล์ bat เป็น startup-sequence :)
ErdinçÇorbacı

5

การขยายตัวของRoryhewittคำตอบ

ข้อดีของการใช้ไฟล์. cmd ผ่าน DOSKEY ก็คือ "aliases" เหล่านี้จะมีอยู่ในเชลล์อื่น ๆ เช่น PowerShell หรือ WSL (ระบบย่อย Windows สำหรับ Linux)

gotcha เดียวที่ใช้คำสั่งเหล่านี้ใน bash คืออาจต้องใช้การตั้งค่าอีกเล็กน้อยเนื่องจากคุณอาจต้องทำการจัดการพา ธ ก่อนที่จะเรียก "นามแฝง" ของคุณ

เช่นฉันมี vs.cmd ซึ่งเป็น "นามแฝง" ของฉันสำหรับการแก้ไขไฟล์ใน Visual Studio

@echo off
if [%1]==[] goto nofiles
start "" "c:\Program Files (x86)\Microsoft Visual Studio 
11.0\Common7\IDE\devenv.exe" /edit %1
goto end
:nofiles
start "" "C:\Program Files (x86)\Microsoft Visual Studio 
11.0\Common7\IDE\devenv.exe" "[PATH TO MY NORMAL SLN]"
:end

ซึ่งไฟไหม้ VS ขึ้น (ในกรณีนี้ VS2012 - แต่ปรับเพื่อลิ้มรส) โดยใช้โครงการ "ปกติ" ของฉันโดยไม่ได้รับไฟล์ แต่เมื่อได้รับไฟล์จะพยายามแนบกับ VS ที่กำลังเปิดอยู่ซึ่งเปิดไฟล์นั้น "ภายในโครงการ" แทนที่จะเริ่ม ตัวอย่างใหม่ของ VS

สำหรับการใช้สิ่งนี้จาก bash ฉันจะเพิ่มระดับทางอ้อมเพิ่มเติมเนื่องจาก "vs Myfile" จะไม่ทำงาน

alias vs='/usr/bin/run_visual_studio.sh'

ซึ่งปรับเส้นทางก่อนที่จะเรียกกับ cmd

#!/bin/bash
cmd.exe /C 'c:\Windows\System32\vs.cmd' "`wslpath.sh -w -r $1`"

ดังนั้นวิธีนี้ฉันสามารถทำได้

vs SomeFile.txt

ไม่ว่าจะเป็นพรอมต์คำสั่ง Power Shell หรือ bash และเปิดขึ้นใน Visual Studio ที่กำลังทำงานของฉันเพื่อแก้ไข (ซึ่งเพิ่งช่วยสมองที่แย่ของฉันไม่ต้องจัดการกับคำสั่ง VI หรือบางอย่างเมื่อฉันเพิ่งแก้ไขใน VS เป็นชั่วโมง)


2

วิธีนี้ไม่ได้เป็นวิธีที่เหมาะสม แต่มีจุดประสงค์ในบางโอกาส

ขั้นแรกให้สร้างโฟลเดอร์และเพิ่มลงในพา ธ ระบบของคุณ ไปที่โปรแกรมปฏิบัติการของโปรแกรมที่คุณต้องการสร้างนามแฝง คลิกขวาและส่งไปยังเดสก์ท็อป (สร้างทางลัด) เปลี่ยนชื่อทางลัดเป็นชื่อนามแฝงใดก็ได้ที่สะดวกสบาย ตอนนี้ใช้ทางลัดและวางในโฟลเดอร์ของคุณ

จากพร้อมต์รันคุณสามารถพิมพ์ชื่อช็อตคัตโดยตรงและคุณสามารถเปิดโปรแกรมให้คุณได้ แต่จากพรอมต์คำสั่งคุณต้องผนวก. lnkและกด Enter โปรแกรมจะเปิดขึ้น


1

โดยธรรมชาติฉันจะไม่พักผ่อนจนกว่าฉันจะมีทางออกที่สะดวกที่สุดของทั้งหมด การรวมคำตอบและหัวข้อต่าง ๆ มากมายไว้ในอินเทอร์เน็ตที่กว้างใหญ่นี่คือสิ่งที่คุณสามารถทำได้

  • โหลดโดยอัตโนมัติด้วยทุก ๆ cmd
  • ไม่ต้องการคำหลักDOSKEYสำหรับนามแฝง

โปรดทราบว่าสิ่งนี้ขึ้นอยู่กับคำตอบและความคิดเห็นของ Argyllเป็นส่วนใหญ่อ่านเพื่อทำความเข้าใจแนวคิด

มันทำงานอย่างไร?

1) สร้างไฟล์แมโครที่มีนามแฝง (หรือไฟล์ bat / cmd เพื่อเรียกใช้สิ่งอื่น ๆ ด้วย)
2) ลงทะเบียนใน Registry เพื่อให้ทำงานกับแต่ละอินสแตนซ์ของ cmd
  - คุณยังสามารถเรียกใช้ผ่านทางลัดเฉพาะในกรณีที่คุณต้องการ

นั่นคือทั้งหมด

%userprofile%/cmd/aliases.mac
;==============================================================================
;= This file is registered via registry to auto load with each instance of cmd.
;================================ general info ================================
;= https://stackoverflow.com/a/59978163/985454  -  how to set it up?
;= https://gist.github.com/postcog/5c8c13f7f66330b493b8  -  example doskey macrofile
;========================= loading with cmd shortcut ==========================
;= create a cmd link with the following target :
;= %comspec% /k "(doskey /macrofile=%userprofile%\cmd\aliases.mac)"

alias=subl %USERPROFILE%\cmd\aliases.mac
hosts=runas /noprofile /savecred /user:QWERTY-XPS9370\administrator "subl C:\Windows\System32\drivers\etc\hosts" > NUL

ls=ls --color=auto $*
ll=ls -l --color=auto $*
la=ls -la --color=auto $*
grep=grep --color

~=cd %USERPROFILE%
cdr=cd c:\repos
cdd=cd c:\repos\dixons
cds=cd c:\repos\stekkie
cdu=cd c:\repos\uplus
cduo=cd c:\repos\uplus\oxbridge-fe
cdus=cd c:\repos\uplus\stratus

;============================= :end ============================
;= rem ******************************************************************
;= rem * EOF - Don't remove the following line.  It clears out the ';'
;= rem * macro. We're using it because there is no support for comments
;= rem * in a DOSKEY macro file.
;= rem ******************************************************************
;=

ตอนนี้คุณมีสองตัวเลือก:
ก) ลงทะเบียนเพียง macrofile
ข) ใช้ปกติcmd/batไฟล์ไปยังคำสั่งโดยพลก็วิ่งเปลี่ยนชื่อหนึ่งที่คุณต้องการ
Autorun

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] - ด้วยตนเอง
  Autorun    REG_SZ    doskey /macrofile=%userprofile%\cmd\aliases.mac
  Autorun_    REG_SZ    %USERPROFILE%\cmd\env.cmd
%userprofile%/cmd/cmd-aliases.reg - หรือผ่านไฟล์ reg
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"Autorun"="doskey /macrofile=%userprofile%\\cmd\\aliases.mac"
"Autorun_"="%USERPROFILE%\\cmd\\env.cmd"
%userprofile%/cmd/env.cmd คุณไม่จำเป็นต้องใช้ไฟล์นี้หากคุณตัดสินใจที่จะก) ข้างต้น
:: This file is registered via registry to auto load with each instance of cmd.
:: https://stackoverflow.com/a/59978163/985454

@echo off
doskey /macrofile=%userprofile%\cmd\aliases.mac

:: put other commands here

0

เนื่องจากคุณมีอยู่แล้วnotepad++.exeในเส้นทางของคุณ สร้างทางลัดในโฟลเดอร์นั้นชื่อและชี้ไปnpnotepad++.exe


0

ก่อนอื่นคุณสามารถสร้างไฟล์ชื่อ np.cmd และวางไว้ในโฟลเดอร์ที่อยู่ในรายการค้นหา PATH จากนั้นแก้ไขไฟล์ np.cmd ดังนี้:

@echo off
notepad++.exe

0

หากคุณต้องการเปิดใช้งานชื่อแทนในแบบต่อไดเรกทอรี / ต่อโครงการลองทำดังนี้:

  1. ก่อนอื่นสร้างแบตช์ไฟล์ที่จะค้นหาไฟล์ที่มีชื่อaliasesในไดเรกทอรีปัจจุบันและเริ่มต้นนามแฝงจากมันมาเรียกมันmake-aliases.cmd

    @echo off
    if not exist aliases goto:eof
    echo [Loading aliases...]
    for /f "tokens=1* delims=^=" %%i in (aliases) do (
       echo   %%i ^<^=^> %%j
       doskey %%i=%%j
    )
    doskey aliases=doskey /macros
    echo   --------------------
    echo   aliases ^=^> list  all
    echo   alt+F10 ^=^> clear all
    echo [Done]
    
  2. จากนั้นสร้างaliasesทุกที่ที่คุณต้องการโดยใช้รูปแบบต่อไปนี้:

    alias1 = command1
    alias2 = command2
    ...
    

    ตัวอย่างเช่น:

    b = nmake
    c = nmake clean
    r = nmake rebuild
    
  3. จากนั้นเพิ่มตำแหน่งของตัวแปรmake-aliases.cmdของคุณ%PATH%เพื่อทำให้ทั้งระบบหรือเก็บไว้ในที่ที่รู้จัก

  4. cmdทำให้มันเริ่มต้นโดยอัตโนมัติด้วย

    • แน่นอนว่าฉันจะไม่แนะนำให้ใช้HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRunสำหรับสิ่งนี้เพราะเครื่องมือในการพัฒนาบางอย่างจะเรียกใช้สคริปต์การทำงานอัตโนมัติหลายครั้งต่อเซสชัน

    • ถ้าคุณใช้ConEmuคุณสามารถไปทางอื่นและเริ่มต้นสคริปต์จากงานเริ่มต้น ( Settings> Startup> Tasks) เช่นผมสร้างรายการที่เรียกว่า{MSVC}:

      cmd.exe /k "vcvars64 && make-aliases",

      จากนั้นลงทะเบียนในเมนูบริบทของ Explorer ผ่านทางSettings> Integration>ด้วยCommand: {MSVC} -cur_console:nดังนั้นตอนนี้ฉันสามารถคลิกขวาที่โฟลเดอร์และเปิดใช้งานพรอมต์ผู้พัฒนา VS ที่อยู่ภายในพร้อมaliasesโหลดของฉันโดยอัตโนมัติหากเกิดขึ้นในโฟลเดอร์นั้น

      หากไม่มี ConEmu คุณอาจต้องการสร้างทางลัดcmd.exeด้วยคำสั่งที่เกี่ยวข้องหรือเรียกใช้make-aliasesด้วยตนเองทุกครั้ง

หากคุณลืมนามแฝงของคุณให้ใช้aliasesมาโครและหากมีอะไรผิดพลาดให้รีเซ็ตเซสชั่นปัจจุบันโดยกดAlt+ F10ซึ่งเป็นคำสั่งในcmdตัว


-4

การใช้ doskey เป็นวิธีที่เหมาะสมในการทำเช่นนี้ แต่จะรีเซ็ตเมื่อปิดหน้าต่างพรอมต์คำสั่ง คุณต้องเพิ่มบรรทัดนั้นลงในบางสิ่งเช่น. bashrc ที่เทียบเท่า ดังนั้นฉันทำต่อไปนี้:

  1. เพิ่ม "C: \ Program Files (x86) \ Notepad ++" ลงในตัวแปรพา ธ ของระบบ
  2. ทำสำเนาของ notepad ++. exe (ในโฟลเดอร์เดียวกัน) และเปลี่ยนเป็น np.exe

ทำงานได้ดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.