คุณใช้คำสั่ง“ FOR” ใน Windows CMD อย่างไร


2

สมมติว่าฉันมีโครงสร้างไดเรกทอรีเช่นนี้

\folder 1\  
\folder 1\folder A\  
\folder 2\  
\folder 2\folder B\

ดังนั้น ..

ภายในแต่ละไดเรกทอรีมีไฟล์และ*.abc *.xyzทุก ๆ*.abcหรือ*.xyzไฟล์ภายใต้ไดเรกทอรีที่ผมจำเป็นต้องเรียกใช้program.exeและบันทึกผลในลักษณะนี้

program.exe -argumen1 -argument2 [*.abc or *.xyz] >> Text.txt

คำถามของฉันคือวิธีการทำสิ่งนี้ในคำสั่งเดียวภายใต้ Windows CMD? ดูเหมือนว่าforเป็นสิ่งที่ฉันควรจะใช้ แต่คู่มือช่วยเหลือในตัวค่อนข้างสับสนสำหรับฉัน

คำตอบ:


2

ฉันจะทำสิ่งนี้ได้อย่างไร

ภายในแต่ละไดเรกทอรีจะมีไฟล์ * .abc และ * .xyz สำหรับทุกไฟล์ * .abc หรือ * .xyz ภายใต้ไดเรกทอรีฉันจำเป็นต้องเรียกใช้ "program.exe" และบันทึกผลลัพธ์ในลักษณะนี้ ...

ไฟล์แบตช์ (test.cmd):

@echo off
setlocal
for /f "usebackq" %%i in (`dir /b /s *.abc *.xyz`) do (
  program.exe -argument1 -argument2 %%i >> Text.txt
  )
)
endlocal

บรรทัดคำสั่ง:

for /f "usebackq" %i in (`dir /b /s *.txt *.cmd`) do @echo program.exe -argument1 -argument2 %i >> Text.txt

อ่านเพิ่มเติม

  • ดัชนี AZ ของบรรทัดคำสั่ง Windows CMD - การอ้างอิงที่ยอดเยี่ยมสำหรับทุกสิ่งที่เกี่ยวข้องกับบรรทัด Windows cmd
  • dir - แสดงรายการไฟล์และโฟลเดอร์ย่อย
  • for / f - คำสั่งวนซ้ำกับผลลัพธ์ของคำสั่งอื่น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.