เราจะขยายคำสั่งไปยังบรรทัดถัดไปได้อย่างไร
โดยพื้นฐานแล้วเป็นทางเลือกของ windows สำหรับ linux
ls -l \
/usr/
ที่นี่เราใช้แบ็กสแลชเพื่อขยายคำสั่งในบรรทัดถัดไป
อะไรเทียบเท่ากับ windows?
เราจะขยายคำสั่งไปยังบรรทัดถัดไปได้อย่างไร
โดยพื้นฐานแล้วเป็นทางเลือกของ windows สำหรับ linux
ls -l \
/usr/
ที่นี่เราใช้แบ็กสแลชเพื่อขยายคำสั่งในบรรทัดถัดไป
อะไรเทียบเท่ากับ windows?
คำตอบ:
หลังจากลองเกือบทุกคีย์บนแป้นพิมพ์ของฉัน:
C:\Users\Tim>cd ^
Mehr? Desktop
C:\Users\Tim\Desktop>
ดูเหมือนว่าจะเป็นปุ่ม ^
ในพรอมต์คำสั่งของ Windows ^
จะใช้เพื่อหลีกเลี่ยงอักขระถัดไปในบรรทัดคำสั่ง (Like \
ถูกใช้ในสตริง) อักขระที่ต้องใช้ในบรรทัดคำสั่งเนื่องจากควรมี ^ นำหน้าสำหรับพวกเขาดังนั้นจึงเป็นเหตุผลว่าทำไมมันจึงทำงานกับ newline
สำหรับการอ้างอิงอักขระที่ต้องการหลบหนี (หากระบุเป็นอาร์กิวเมนต์คำสั่งและไม่อยู่ในเครื่องหมายคำพูด): &|()
ดังนั้นตัวอย่างที่เทียบเท่ากับลินุกซ์ของคุณจะเป็น ( ยิ่งการเป็นพรอมต์):
C:\> dir ^
More? C:\Windows
อักขระคาเร็ตใช้งานได้อย่างไรก็ตามบรรทัดถัดไปไม่ควรเริ่มต้นด้วยเครื่องหมายคำพูดคู่ เช่นนี้จะไม่ทำงาน:
C:\ ^
"SampleText" ..
เริ่มบรรทัดถัดไปโดยไม่มีเครื่องหมายคำพูดคู่ (ไม่ใช่ตัวอย่างที่ถูกต้องเพียงเพื่อแสดงให้เห็น)
หากคุณมาที่นี่มองหาคำตอบให้กับคำถามนี้ แต่ไม่ว่าวิธีการ OP หมายคือวิธีการที่คุณจะได้รับหลายสาย CMD ในการทำงานในซิงเกิ้ลสายผมมีการเรียงลำดับของคำตอบที่เป็นอันตรายสำหรับคุณ
การพยายามใช้สิ่งนี้กับสิ่งที่ใช้งานท่ออย่างเช่นพูดfindstr
เป็นปัญหามาก เดียวกันจะไปสำหรับการรับมือกับelse
s แต่ถ้าคุณต้องการให้คำสั่งแบบมีเงื่อนไขหลายบรรทัดดำเนินการโดยตรงจาก CMD และไม่ผ่านไฟล์แบตช์สิ่งนี้จะทำงานได้ดี
สมมติว่าคุณมีสิ่งนี้ในแบตช์ที่คุณต้องการเรียกใช้โดยตรงในพร้อมท์คำสั่ง:
@echo off
for /r %%T IN (*.*) DO (
if /i "%%~xT"==".sln" (
echo "%%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file
echo Dumping SLN file contents
type "%%~T"
)
)
ตอนนี้คุณสามารถใช้ carat-line ต่อเนื่อง ( ^
) และพิมพ์มันออกมาแบบนี้ด้วยตนเอง แต่เตือนมันน่าเบื่อและถ้าคุณทำผิดพลาดคุณสามารถเรียนรู้ถึงความปิติยินดีที่ได้พิมพ์มันออกมาอีกครั้ง
ดีก็จะไม่ทำงานกับเพียง^
ขอบคุณที่หลบหนีกลไกภายในของวงเล็บยักอย่างน้อยไม่ได้เป็นที่เขียน คุณจะต้องเพิ่มกะรัตเป็นสองเท่าดังนี้:
@echo off ^
More? for /r %T IN (*.sln) DO (^^
More? if /i "%~xT"==".sln" (^^
More? echo "%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file^^
More? echo Dumping SLN file contents^^
More? type "%~T"))
แต่คุณสามารถเป็นคนเก็บขยะที่มีเล่ห์เหลี่ยมสกปรกจากด้านที่ไม่ถูกต้องของแทร็กที่ไม่ต้องการกะรัตโดยการเปลี่ยนพวกมันออกเป็นท่อเดียว ( |
) ต่อการวนรอบ / นิพจน์ต่อไป:
@echo off
for /r %T IN (*.sln) DO if /i "%~xT"==".sln" echo "%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file | echo Dumping SLN file contents | type "%~T"