ฉันจะจำลองเป้าหมายของ Make ภายในไฟล์แบตช์ Windows ได้อย่างไร


1

ในการทำงานในการแก้ไขhttps://tex.stackexchange.com/a/160685/17423ฉันกำลังมองหาเพื่อสร้างรุ่นแบทช์ไฟล์นี้makefile

มีวิธีที่ชัดเจน / ทั่วไปในการจำลองฟังก์ชั่น 'เป้าหมาย' ของ Make หรือไม่ ฉันไม่ต้องการการแก้ปัญหาที่พึ่งพาได้makeให้ - เพียงบางประเภท (หวังว่าจะสะอาด) ไวยากรณ์


มีเหตุผลที่คุณไม่สามารถใช้สร้างหรือไม่
jdigital

@ jdigital ฉันไม่คิดว่ามันจะถูกติดตั้ง; ฉันแจกจ่ายแพ็คเกจ LaTeX สองอันให้เพื่อนร่วมชั้นของฉัน --- ซึ่งบางคนเป็นวิชาเอกคณิตศาสตร์ที่กลัวคอมพิวเตอร์เป็นส่วนใหญ่ มันจะเป็นทั้งหมดที่ฉันสามารถทำได้เพื่อให้พวกเขาเปิดสถานี; การติดตั้ง Cygwin / MinGW / MSYS นั้นเป็นคำถามที่ไม่เหมาะสม
ฌอน Allred

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

@ jdigital ประเด็นคือฉันสามารถทำได้ด้วยลำดับที่น่ารังเกียจจริงๆ - จากนั้นให้เปรียบเทียบอาร์กิวเมนต์บรรทัดคำสั่งแรกกับค่าคงที่ คำถามของฉันคือการขอไวยากรณ์ที่สะอาดและเป็นเอกลักษณ์
Sean Allred

นั่นอาจเป็นสิ่งที่ท้าทาย โปรดทราบว่าหากหนึ่งบรรทัดในการดำเนินการล้มเหลว Make จะไม่ดำเนินการกับบรรทัดที่เหลือ
jdigital

คำตอบ:


4

ไม่แน่ใจเกี่ยวกับ windows ที่เทียบเท่ากับคำสั่งที่คุณใช้ แต่นี่เป็นตัวอย่างง่ายๆของการเรียกใช้ฟังก์ชันบางอย่างตามพารามิเตอร์บรรทัดคำสั่ง คุณสามารถแทนที่echoคำสั่งด้วยคำสั่งที่คุณต้องการ หากคุณนำgoto :endบรรทัดที่ 5 ออกมาdefaultฟังก์ชันจะถูกเรียกใช้เมื่อไม่มีการระบุพารามิเตอร์เช่นเดียวกับ makefiles

@ECHO off    
if /I %1 == default goto :default
if /I %1 == install goto :install
if /I %1 == tikzpgf goto :tikzpgf
if /I %1 == clean goto :clean

goto :eof ::can be ommited to run the `default` function similarly to makefiles

:default
echo DEFAULT
goto :eof

:install
echo INSTALL
goto :eof

:tikzpgf
echo TIKZPGF
goto :eof

:clean
echo CLEAN
goto :eof

1
ชุดสคริปต์ควรละเว้นกรณี ( if /i) เพื่อหลีกเลี่ยงความล้มเหลวเมื่อมีคนใช้ "ติดตั้ง" หรือ "clEAN," ฯลฯ นอกจากนี้คุณสามารถพึ่งพาEOFป้ายกำกับที่มีอยู่แล้วค่อนข้างจะกำหนดใหม่
and31415

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