ตัวอย่างขั้นสูงเพิ่มเติม:
⍟ข้อโต้แย้งไม่ จำกัด
⍟มีอยู่ในระบบไฟล์ (อย่างใดอย่างหนึ่งfile
หรือdirectory
?) หรือไฟล์string
.
⍟ระบุว่าเป็นไฟล์หรือไม่
⍟ระบุเป็นไดเร็กทอรี
⍟ ไม่มีส่วนขยายจะใช้งานได้ในสคริปต์ดั้งเดิม!
⍟ รหัสขั้นต่ำ☺
@echo ปิด
: ห่วง
:: -------------------------- มีข้อโต้แย้ง?
ถ้า ["% ~ 1"] == [""] (
เสียงสะท้อนเสร็จสิ้น
goto end
)
:: -------------------------- มีข้อโต้แย้ง?
ถ้าไม่มีอยู่% ~ s1 (
ไม่มีเสียงสะท้อน
) อื่น ๆ (
เสียงสะท้อนอยู่
ถ้ามีอยู่% ~ s1 \ NUL (
echo คือไดเร็กทอรี
) อื่น ๆ (
echo คือไฟล์
)
)
:: --------------------------
กะ
โกโตลูป
: จบ
หยุด
✨ของอื่น ๆ .. ✨
■ใน%~1
- ~
ลบการห่อ"
หรือ'
.
■ใน%~s1
- s
ทำให้เส้นทางเป็นDOS 8.3 naming
ซึ่งเป็นเคล็ดลับที่ดีในการหลีกเลี่ยงช่องว่างในชื่อไฟล์ขณะตรวจสอบสิ่งต่างๆ (และวิธีนี้ไม่จำเป็นต้องรวมทรัพยากรด้วย"
s มากขึ้น
■ ["%~1"]==[""]
"ไม่สามารถแน่ใจได้" หากอาร์กิวเมนต์เป็นไฟล์ / ไดเร็กทอรีหรือเป็นเพียงสตริงทั่วไปดังนั้นนิพจน์จึงใช้วงเล็บและต้นฉบับที่ยังไม่ได้แก้ไขแทน%1
(โดยไม่ต้องมีการ"
ตัดหากมี .. )
ถ้ามีข้อโต้แย้งว่าถ้าเราได้ใช้ไม่มีและตัวชี้หาเรื่องรายการได้ผ่านช่วงหนึ่งการแสดงออกจะได้รับการประเมินเพื่อshift
[""]==[""]
■นี่เป็นสิ่งที่เฉพาะเจาะจงมากที่สุดที่คุณสามารถทำได้โดยไม่ต้องใช้เทคนิคเพิ่มเติม (จะใช้ได้แม้ในชุดสคริปต์ของ windows-95 ... )
■ตัวอย่างการดำเนินการ
บันทึกเป็น identifier.cmd
สามารถระบุอาร์กิวเมนต์ได้ไม่ จำกัด (โดยปกติคุณ จำกัด ไว้ที่%1
- %9
) เพียงอย่าลืมปิดอาร์กิวเมนต์ด้วยเครื่องหมายจุลภาคกลับด้านหรือใช้การตั้งชื่อ 8.3 หรือลากและวางทับ (จะทำอย่างใดอย่างหนึ่งโดยอัตโนมัติ)
สิ่งนี้ช่วยให้คุณสามารถรันคำสั่งต่อไปนี้:
⓵ identifier.cmd c:\windows
และจะได้รับ
มีอยู่
เป็นไดเร็กทอรี
เสร็จแล้ว
⓶ identifier.cmd "c:\Program Files (x86)\Microsoft Office\OFFICE11\WINWORD.EXE"
และจะได้รับ
มีอยู่
เป็นไฟล์
เสร็จแล้ว
⓷และหลายข้อโต้แย้ง(แน่นอนว่านี่คือข้อตกลงทั้งหมด .. )
identifier.cmd c:\windows\system32 c:\hiberfil.sys "c:\pagefile.sys" hello-world
และจะได้รับ
มีอยู่
เป็นไดเร็กทอรี
มีอยู่
เป็นไฟล์
มีอยู่
เป็นไฟล์
ไม่มีอยู่จริง
เสร็จแล้ว
โดยธรรมชาติแล้วมันอาจซับซ้อนกว่านี้มาก
แต่ตัวอย่างที่ดีควรเรียบง่ายและน้อยที่สุด :)
หวังว่าจะช่วยทุกคน :)
เผยแพร่ที่นี่: CMD Ninja - การประมวลผลอาร์กิวเมนต์แบบไม่ จำกัด การระบุว่ามีอยู่ในระบบไฟล์หรือไม่การระบุว่าไฟล์หรือไดเรกทอรี
และนี่คือตัวอย่างการทำงานที่ใช้ไฟล์ APK (แอป Android) จำนวนเท่าใดก็ได้และติดตั้งลงในอุปกรณ์ของคุณผ่านคอนโซลดีบัก (ADB.exe):
สร้างโพสต์ก่อนหน้าตัวติดตั้ง APK จำนวนมากที่ไม่ใช้ ADB Install-Multi Syntax