Windows CMD - ค้างคาวเปิดจากภายนอกรวมถึง goto


0

ดังนั้นฉันจึงสร้างไฟล์แบตช์ยูทิลิตี้นี้แสดงข้อมูลทุกชนิด แต่ฉันต้องการให้มันเริ่มต้นเมื่อเริ่มต้นคอมพิวเตอร์ ดังนั้นฉันได้เพิ่มไปยัง C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup แต่ฉันต้องการให้ไปที่เมนูเฉพาะที่ระบุด้วย :startup ดังนั้นฉันจึงตัดสินใจว่าฉันควรสร้างไฟล์ bat ใหม่ด้วยบางอย่าง

start cmd /k goto startup

แต่เนื่องจากไม่มี :startup ในไฟล์นั้นมันไม่ทำงาน

คำตอบ:


2

คุณสามารถ:

แทรก goto startup ที่จุดเริ่มต้นของแบตช์ไฟล์ของคุณ

หรือคุณสามารถแทรกรหัสบรรทัดนี้:

IF /I "%~dp0"=="%APPDATA%\Microsoft\Windows\Start Menu\Startup" ( goto startup )

ที่จุดเริ่มต้นของแบตช์ไฟล์ของคุณหากคุณต้องการตรวจสอบว่ามันอยู่ในไดเรกทอรีเริ่มต้นก่อน


1
แม้ว่าคำตอบนี้ถูกต้องทางเทคนิคฉันค่อนข้างมั่นใจว่านี่จะไม่ช่วยแซม ฉันค่อนข้างมั่นใจว่าพวกเขาต้องการข้ามการเริ่มต้นตามเงื่อนไขเฉพาะเมื่อ batchfile อยู่ในโฟลเดอร์เริ่มต้น
LPChip

@LPChip อัปเดตคำตอบของฉันเพื่อแก้ไขสิ่งนี้
Ultrasonic54321

1
การปรับปรุงที่ดี +1 :)
LPChip

1
ไม่ควรเป็น% userprofile% แทนที่จะเป็น% ชื่อผู้ใช้% ใช่หรือไม่
Tonny

@Tonny ดูที่นี่ % Userprofile% คือชื่อผู้ใช้ + โฟลเดอร์ผู้ใช้ของคุณ % ชื่อผู้ใช้% จะส่งคืนเฉพาะชื่อผู้ใช้ของคุณ
Ultrasonic54321

1

คุณไม่สามารถข้ามไปที่ป้ายกำกับภายในไฟล์ CMD จากด้านนอก ...
วิธีที่ดีที่สุดคือการระบุเลเบลที่ต้องการเป็นพารามิเตอร์ให้กับไฟล์ CMD จากนั้นใช้สิ่งที่ต้องการ

if not %1.==. goto %1

เป็นบรรทัดแรกในไฟล์ CMD


1
แม้ว่าสิ่งนี้จะถูกต้องคุณควรเพิ่มพารามิเตอร์นั้นลงในแฟ้มแบตช์หนึ่งต้องวาง batchfile ไว้ที่อื่นและสร้างทางลัดไปยังไฟล์แบตช์ที่มีการระบุพารามิเตอร์ ทางลัดนั้นจะถูกย้ายไปยังโฟลเดอร์เริ่มต้นเอง คุณไม่สามารถระบุพารามิเตอร์ให้กับไฟล์แบตช์เองได้หากคุณวางไว้ในโฟลเดอร์เริ่มต้นและคาดว่ามันจะทำงานได้
LPChip

@ LPChip แน่นอน แต่ฉันคิดว่าถ้า OP ฉลาดพอที่จะเข้าใจว่า“ start cmd / k” เขาจะสามารถตั้งค่าทางลัดด้วยพารามิเตอร์
Tonny

ไม่เคยทำสมมติฐานแบบนั้นฉันเรียนรู้วิธีที่ยาก นอกจากนี้ OP อาจเข้าใจว่านี่เป็นไซต์ Q และ A และพบได้โดยคนอื่น ๆ รวมถึงผู้ที่ไม่เข้าใจ บางคนอาจลองใช้วิธีแก้ปัญหาของคุณแล้วลองคิดดู: แต่นี่เป็นไปไม่ได้ downvote! แค่พูด... :)
LPChip

กรุณาอธิบาย? ทำไม ‘. ==.’
Sam

@Sam นั่นเป็นเพียงกลลวงที่รู้จักกันดีเพื่อเปิดใช้การเปรียบเทียบกับ% 1 ที่ว่างเปล่า ไวยากรณ์ไม่อนุญาตสำหรับบางอย่างเช่น IF% 1 == "" GOTO ดังนั้นการเพิ่มจุดหลังจาก% 1 ช่วยให้คุณสามารถเปรียบเทียบกับจุดเดียวซึ่งมีจำนวนเท่ากับสิ่งเดียวกันหาก% 1 ว่างเปล่า
Tonny
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.