Score:3

echo %time% เอาต์พุตที่ซ้ำกัน

ธง ch

ฉันมีคำสั่งที่เพิ่มการประทับเวลาที่จุดเริ่มต้นและจุดสิ้นสุด (echo %time% & #other command# & echo %time%). อย่างไรก็ตาม %เวลา% จะเหมือนกันไม่ว่าคำสั่งจะใช้เวลานานแค่ไหนในการดำเนินการ

เอาต์พุตตัวอย่าง:

เริ่มเวลา: 19:48:31.75 น

Pinging google.com [2a00:1450:400e:80c::200e] พร้อมข้อมูล 32 ไบต์:
ตอบกลับจาก 2a00:1450:400e:80c::200e: time=13ms
ตอบกลับจาก 2a00:1450:400e:80c::200e: time=13ms
ตอบกลับจาก 2a00:1450:400e:80c::200e: time=9ms
ตอบกลับจาก 2a00:1450:400e:80c::200e: เวลา=10ms

สถิติ Ping สำหรับ 2a00:1450:400e:80c::200e:
    แพ็กเก็ต: ส่ง = 4 ได้รับ = 4 สูญหาย = 0 (สูญเสีย 0%)
เวลาไปกลับโดยประมาณเป็นมิลลิวินาที:
    ต่ำสุด = 9ms, สูงสุด = 13ms, เฉลี่ย = 11ms

จบเวลา: 19:48:31.76

มีวิธีการทำงานนี้ยังอยู่ในบรรทัดเดียวหรือไม่?

ขอบคุณ

djdomi avatar
za flag
คำสั่ง & การดำเนินการคำสั่งจะเป็นจริงเท่านั้น ทำไมไม่ใช้เครื่องหมายอัฒภาค ; มันดำเนินการโดยไม่คำนึงถึง
ch flag
@djdomi ฉันลองแล้ว แต่เขียนว่า `echo %time%; ปิง google.com; เสียงสะท้อน %เวลา%` หรือแม้แต่เครื่องหมายคำพูดก็ไม่ได้ผล เห็นเครื่องหมายอัฒภาคเป็นส่วนหนึ่งของคำสั่ง แทนที่จะปิด
in flag
@djdomi `;` ไม่ทำงานใน cmd เดียว `&` ดำเนินการต่อไปในขณะที่ ` &&` ไม่ทำงาน
jp flag
@MichaelHampton: ความแตกต่างคือ 0.01 วินาทีในขณะที่ควรจะมากกว่า 4 วินาที
Score:2
ธง in

CMD ขยายตัวแปรและดำเนินการแต่ละบรรทัด นั่นหมายความว่า

echo %time% & ping 127.0.0.1 & echo %เวลา%

จะถูกขยายก่อนแล้วจึงดำเนินการ

นอกจากนี้ยังมี "การขยายตัวล่าช้า" นี่คือตัวอย่างการใช้งาน, และละเอียดยิ่งขึ้น อย่างไรก็ตาม สิ่งนี้ใช้ได้เฉพาะในไฟล์ cmd ไม่ใช่ใน commandline

setlocal ENABLEDELAYEDEXPANSION
เอคโค่ !time! & ping 127.0.0.1 & echo !time!

ค้นหาต่อไป อาจจะ cmd /V สามารถใช้ได้:

cmd /V /C "echo %time% & ping 127.0.0.1 & echo !time!"

มันให้ผลลัพธ์ที่คาดหวังสำหรับฉัน แต่อาจมี gotchas ที่ขัดขวางการใช้งานบางกรณี

It Wasn't Me avatar
cn flag
*[...และรายละเอียดเพิ่มเติม](https://superuser.com/questions/1569594/how-does-delayed-expansion-works-in-batch-script)* ฉันชอบการอ้างอิงการสนับสนุน .... d :)
It Wasn't Me avatar
cn flag
ตอนนี้ฉันอยู่ใน mac ของฉัน ดังนั้นจึงไม่มีวิธีทดสอบ แต่ บางที **`call`** ก็สามารถทำได้เช่นกัน: `echo %time% & ping 127.0.0.1 & call echo %time%`...
in flag
@ ซึ่งจะใช้งานไม่ได้เนื่องจากมีการประเมินตัวแปรก่อนเช่นกัน คุณต้องมีการขยายที่ล่าช้าหากคุณเรียกใช้ในบรรทัดเดียวกัน (หรือบล็อก `()`)
It Wasn't Me avatar
cn flag
สำหรับสิ่งนี้ฉันเขียน *อาจจะ*

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา