Command Line loop เพื่อเรียกใช้คำสั่งในไฟล์ทั้งหมดในไดเรกทอรี (รวมถึงไดเรกทอรีย่อยหากเป็นไปได้


14

ฉันคิดว่ามันค่อนข้างง่ายที่จะทำ แต่ฉันไม่มีประสบการณ์กับโปรแกรมอรรถประโยชน์บรรทัดคำสั่งของ Windows โดยทั่วไปฉันจำเป็นต้องวนซ้ำทุกไฟล์ในไดเรกทอรี (ดีมากถ้ามันสามารถทำไดเรกทอรีย่อยได้ แต่ฉันสามารถเรียกใช้ในแต่ละไดเรกทอรี 5 ถ้าจำเป็น), รับชื่อเป็นตัวแปรและให้มันทำงาน

"C:\Program Files\ImageMagick-6.7.6-Q16\convert.exe" -compress LZW 
   -colorspace Gray -colors 32 file_var file_var

ผมเห็นชื่อไฟล์แบบไดนามิกในพร้อมท์คำสั่งสำหรับวง ฉันจะใช้มันได้ไหม (สลับตลาดหลักทรัพย์ ... ด้วยคำสั่งด้านบน)? พื้นที่บนคอมพิวเตอร์ที่มีปัญหานั้นมีจำนวน จำกัด ดังนั้นฉันจึงไม่สามารถทำการสำรองข้อมูลก่อนที่จะเรียกใช้ในขั้นตอนนี้ (แย่ฉันรู้)


Robert ถ้าคุณสามารถตอบคำถามของคุณเองได้โปรดเพิ่มคำตอบของคุณเองและยอมรับว่ามันถูกต้อง
Julian Knight

ฉันไม่คิดว่ามันเป็นสิ่งที่คุณต้องการท้ายของมัน ( "%%f" "%%f") จะวางชื่อไฟล์ (พร้อมเส้นทางที่มีคุณสมบัติครบถ้วน) สองครั้ง คุณอาจต้องการใช้สิ่งที่ต้องการ"%%f" "%%~dpnf.gif"เปลี่ยนนามสกุลของไฟล์เอาต์พุต
Synetech

@JulianKnight - ขอบคุณฉันจริง ๆ แล้วพยายามที่จะย้อนเวลากลับไป แต่ฉันคิดว่ามีการบังคับรอเพื่อทำเช่นนั้น ชนิดลืมเกี่ยวกับคำถามตั้งแต่นั้นมา
Robert

คำตอบ:


12

แปลกมีการตอบสนองที่มีส่วนซ้ำ

ทีนี้ต่อวิธีการวนไฟล์ผ่านการจับคู่ไวด์การ์ดในไฟล์แบทช์ฉันก็ทำได้ นี่คือวิธีการแสดง:

 cd path_to_root
 for /R %%f in (*.tif) do (
 "C:\Program Files\ImageMagick-6.7.6-Q16\convert.exe" -compress LZW 
    -colorspace Gray -colors 32 "%%f" "%%f"
 )

4

เปิด PowerShell

$files = Get-ChildItem -Recurse 
foreach ($file in $files){
    c:\windows\System32\notepad.exe $file.FullName
}

Get-ChildItem ดึงรายชื่อของไฟล์เป็นวัตถุจากไดเรกทอรีย่อยปัจจุบัน "-recurse" จะรวมไดเรกทอรีย่อย สิ่งนี้วางลงในอาร์เรย์ $ Files

foreach วนรอบแต่ละไฟล์และเรียกใช้ notepad พร้อมอาร์กิวเมนต์ commandline ของพา ธ ชื่อไฟล์แบบเต็มไปยังแต่ละไฟล์

ข้อควรระวัง: ทดสอบรหัสข้างต้นในไดเรกทอรีที่มีไฟล์ข้อความเล็ก ๆ น้อย ๆ เนื่องจากจะเปิดตัวอย่างของ Notepad สำหรับแต่ละไฟล์

นั่นควรจะทำให้คุณรู้ว่าจะทำอย่างไรในสิ่งที่คุณต้องการทำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.