คำถามติดแท็ก batch-file

ชุดไฟล์เป็นไฟล์ข้อความที่มีชุดคำสั่งที่ดำเนินการโดยล่ามคำสั่งในระบบ MS-DOS, IBM OS / 2 หรือระบบ Microsoft Windows

7
การแสดงความคิดเห็นหลายบรรทัดในไฟล์แบตช์ DOS
ฉันเขียนไฟล์ MS DOS Batch ขนาดใหญ่แล้ว ในการทดสอบไฟล์แบตช์นี้ฉันต้องดำเนินการบางบรรทัดเท่านั้นและต้องการซ่อน / แสดงความคิดเห็นที่เหลืออยู่ ฉันมีบรรทัดความคิดเห็นที่มีอยู่แล้วเริ่มต้นด้วย::เหตุนี้ฉันจึงไม่สามารถใช้งานได้::อีกต่อไปเพราะมันจะแย่งความคิดเห็นทั้งหมด ฉันจะแก้ปัญหานี้ได้อย่างไร?

5
ฉันสามารถมี IF block ในไฟล์แบตช์ DOS ได้หรือไม่
ในไฟล์แบตช์ DOS เราสามารถมีได้เพียง 1 บรรทัดเท่านั้น if statement body? ฉันคิดว่าฉันพบที่ไหนสักแห่งที่ฉันสามารถใช้()สำหรับ if block ได้เหมือนกับที่{}ใช้ในภาษาโปรแกรมคล้าย C แต่มันไม่ได้เรียกใช้งานคำสั่งเมื่อฉันลองทำเช่นนี้ ไม่มีข้อความแสดงข้อผิดพลาดเช่นกัน นี่คือรหัสของฉัน: if %GPMANAGER_FOUND%==true(echo GP Manager is up goto Continue7 ) echo GP Manager is down :Continue7 ไม่แปลกที่ทั้ง "GP Manager is up" หรือ "GP Manager is down" ไม่ได้รับการพิมพ์ออกมาเมื่อฉันเรียกใช้ไฟล์แบตช์

9
ฉันจะจับเอาต์พุตของสคริปต์ได้อย่างไรหากถูกรันโดยตัวกำหนดตารางเวลางาน
เมื่อใช้ Windows Server 2008 ฉันจะจับเอาต์พุตของสคริปต์ที่รันด้วยตัวกำหนดตารางเวลางาน windows ได้อย่างไร ฉันกำลังทดสอบชุดสคริปต์การพิมพ์แบบกำหนดเองที่ค่อนข้างยาวและเพื่อวัตถุประสงค์ในการดีบักฉันต้องการดูผลลัพธ์ทั้งหมดจากมันทุกคืน

11
สคริปต์เดียวที่จะทำงานทั้งใน Windows batch และ Linux Bash?
เป็นไปได้ไหมที่จะเขียนไฟล์สคริปต์เดียวซึ่งดำเนินการทั้งใน Windows (ถือว่าเป็น. bat) และ Linux (ผ่าน Bash) ฉันรู้ไวยากรณ์พื้นฐานของทั้งสอง แต่ไม่เข้าใจ อาจใช้ประโยชน์จากไวยากรณ์ที่คลุมเครือของ Bash หรือความผิดพลาดของตัวประมวลผลแบตช์ของ Windows คำสั่งในการดำเนินการอาจเป็นเพียงบรรทัดเดียวเพื่อเรียกใช้สคริปต์อื่น แรงจูงใจคือการมีคำสั่งบูตแอปพลิเคชันเดียวสำหรับทั้ง Windows และ Linux อัปเดต:ความต้องการเชลล์สคริปต์ "เนทีฟ" ของระบบคือต้องเลือกเวอร์ชันล่ามที่เหมาะสมสอดคล้องกับตัวแปรสภาพแวดล้อมที่รู้จักกันดีบางอย่างเป็นต้นการติดตั้งสภาพแวดล้อมเพิ่มเติมเช่น CygWin ไม่เป็นที่นิยม - ฉันต้องการคงแนวคิด " ดาวน์โหลดและเรียกใช้ " ภาษาอื่นที่ควรพิจารณาสำหรับ Windows คือ Windows Scripting Host - WSH ซึ่งตั้งค่าไว้ล่วงหน้าตั้งแต่ปี 98
98 bash  batch-file 

5
แบทช์ที่เทียบเท่ากับแบ็คไทม์ Bash
เมื่อทำงานกับ Bash ฉันสามารถใส่ผลลัพธ์ของคำสั่งหนึ่งในคำสั่งอื่นได้ดังนี้: my_command `echo Test` ก็จะเหมือนกับ my_command Test (เห็นได้ชัดว่านี่เป็นเพียงตัวอย่างที่ไม่สามารถใช้ได้จริง) ฉันแค่สงสัยว่าคุณสามารถทำสิ่งเดียวกันใน Batch ได้หรือไม่

11
ฉันจะดีบักสคริปต์. BAT ได้อย่างไร
มีวิธีผ่านสคริปต์. bat หรือไม่? สิ่งนี้คือฉันมีสคริปต์สร้างซึ่งเรียกสคริปต์อื่น ๆ มากมายและฉันต้องการดูว่าลำดับที่เรียกว่าอะไรเพื่อที่ฉันจะได้รู้ว่าฉันต้องไปที่ไหนและเพิ่มการแก้ไขของฉัน .

3
จะเรียกใช้คำสั่ง DOS หลายคำสั่งควบคู่กันได้อย่างไร?
จะเรียกใช้คำสั่ง dos หลายคำสั่งได้อย่างไร? ฉันมีforลูปซึ่งเรียกใช้การตรวจจับเซิร์ฟเวอร์เพื่อตรวจสอบว่าเซิร์ฟเวอร์ใดทำงานและทำงานได้อย่างรวดเร็ว และเนื่องจากมีเซิร์ฟเวอร์มากขึ้นฉันจึงไม่ต้องการเรียกใช้การตรวจจับเซิร์ฟเวอร์ทั้งหมดตามลำดับ แต่เป็นแบบคู่ขนาน
97 batch-file  cmd 


5
ชุดสคริปต์เพื่อลบไฟล์
ฉันมีชุดสคริปต์ดังนี้ D: del "D:\TEST\TEST1\Archive\*.TSV" del "D:\TEST\TEST1\Archive\*.TXT" del "D:\TEST\TEST2\Archive\*.TSV" del "D:\TEST\TEST2\Archive\*.TXT" del "D:\TEST\TEST 100%\Archive\*.TSV" del "D:\TEST\TEST 100%\Archive\*.TXT" โค้ดด้านบนลบทั้งหมด ".txt" และ ".tsv" TEST 100%ไฟล์จากโฟลเดอร์ทั้งหมดยกเว้นจากโฟลเดอร์ สำหรับการลบไฟล์จากTEST 100%ฉันได้รับข้อผิดพลาดเป็นThe Path could not be found. ฉันเดาว่าสัญลักษณ์% ในชื่อโฟลเดอร์สร้างปัญหา ใครช่วยแนะนำวิธีแก้ไขปัญหาและลบไฟล์ออกจากโฟลเดอร์ได้TEST 100%ไหม
96 batch-file 

11
ฉันจะสร้างพร้อมต์“ คุณแน่ใจ” ใน Windows batchfile ได้อย่างไร
ฉันมีไฟล์แบตช์ที่คัดลอกไฟล์จำนวนมากจากที่หนึ่งไปยังอีกที่หนึ่งโดยอัตโนมัติและกลับมาให้ฉัน มีเพียงสิ่งเดียวที่ช่วยให้ฉันเลือกคำสั่งนั้นโดยไม่ได้ตั้งใจจากบัฟเฟอร์คำสั่งของฉันและเขียนทับการเปลี่ยนแปลงที่ไม่ได้รับคำสั่ง ฉันต้องใช้รหัสอะไรสำหรับไฟล์. bat เพื่อให้มันบอกว่า "คุณแน่ใจ" และทำให้ฉันพิมพ์ "y" ก่อนที่จะเรียกใช้ไฟล์ที่เหลือ หากมีการพิมพ์อะไรก็ตามยกเว้น "y" ควรออกจากการดำเนินการในบรรทัดนั้น แก้ไข 27 พ.ย. โอเคฉันทำเครื่องหมายว่ายังไม่ได้รับคำตอบอีกครั้งเพราะฉันยังคิดไม่ออก เมื่อฉันเรียก "exit;" มันปิด cmd.exe ซึ่งไม่ใช่สิ่งที่ฉันต้องการ ทั้งหมดนี้เป็นเพราะ Windows ใช้บัฟเฟอร์คำสั่งผิด [แตกต่างจากที่ฉันคุ้นเคยอย่างน้อยที่สุด]

8
ฉันจะรันคำสั่ง cmd ผ่านไฟล์แบตช์ได้อย่างไร
ฉันต้องการเขียนไฟล์แบตช์ที่จะทำสิ่งต่างๆตามลำดับที่กำหนด: เปิด cmd เรียกใช้คำสั่ง cmd cd c:\Program files\IIS Express เรียกใช้คำสั่ง cmd iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0 เปิดInternet Explorer 8ด้วย URL =http://localhost:8088/default.aspx หมายเหตุ: ไม่ควรปิดหน้าต่าง cmd หลังจากดำเนินการตามคำสั่ง ฉันพยายามเริ่ม cmd.exe / k "cd \ & cd ProgramFiles \ IIS Express"แต่มันไม่ได้แก้จุดประสงค์ของฉัน

12
วิธีลบไฟล์และโฟลเดอร์ทั้งหมดในโฟลเดอร์โดยการโทร cmd
ฉันใช้ Windows ฉันต้องการลบไฟล์และโฟลเดอร์ทั้งหมดในโฟลเดอร์โดยการเรียกระบบ ฉันอาจเรียกแบบนั้น: >rd /s /q c:\destination >md c:\destination คุณรู้วิธีที่ง่ายกว่านี้หรือไม่?

6
การหลีกเลี่ยงเครื่องหมายคำพูดคู่ใน Batch Script
ฉันจะเปลี่ยนเครื่องหมายคำพูดคู่ทั้งหมดในพารามิเตอร์ของไฟล์แบตช์ด้วยเครื่องหมายคำพูดคู่ที่ใช้ Escape ได้อย่างไร นี่คือไฟล์แบตช์ปัจจุบันของฉันซึ่งขยายพารามิเตอร์บรรทัดคำสั่งทั้งหมดภายในสตริง: @echo off call bash --verbose -c "g++-linux-4.1 %*" จากนั้นใช้สตริงนั้นเพื่อโทรไปยัง bash ของ Cygwin โดยเรียกใช้งานคอมไพเลอร์ข้าม Linux น่าเสียดายที่ฉันได้รับพารามิเตอร์เช่นนี้ส่งไปยังไฟล์แบตช์ของฉัน: "launch-linux-g++.bat" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -DNDEBUG -c -o "C:\Users\Me\Documents\Testing\SparseLib\bin\Win32\LinuxRelease\hello.o" "c:\Users\Me\Documents\Testing\SparseLib\SparseLib\hello.cpp" โดยที่เครื่องหมายคำพูดแรกรอบเส้นทางแรกที่ส่งเข้ามาคือการสิ้นสุดสตริงที่ถูกส่งไปยัง GCC ก่อนเวลาอันควรและส่งผ่านพารามิเตอร์ที่เหลือไปยัง bash โดยตรง (ซึ่งล้มเหลวอย่างไม่น่าเชื่อ) ฉันคิดว่าถ้าฉันสามารถต่อพารามิเตอร์เป็นสตริงเดียวได้หรือไม่จากนั้นให้หลีกเลี่ยงเครื่องหมายคำพูดมันก็น่าจะใช้ได้ดี แต่ฉันมีปัญหาในการพิจารณาว่าจะทำอย่างไร มีใครรู้บ้าง?

2
มีหลายวิธีในการเรียกไฟล์แบตช์ windows จากไฟล์อื่นหรือจากพร้อมต์ อันไหนในกรณีนี้?
ไฟล์แบตช์ windows ( called.batหรือcalled.cmd) สามารถเรียกได้จากไฟล์แบตช์อื่น ( caller.batหรือcaller.cmd) หรือพร้อมต์ cmd.exe แบบโต้ตอบได้หลายวิธี: โทรโดยตรง: called.bat ใช้คำสั่งโทร: call called.bat ใช้คำสั่ง cmd: cmd /c called.bat ใช้คำสั่ง start: start called.bat ฉันค่อนข้างมีปัญหาในการแยกความแตกต่างของการใช้งานที่ตั้งใจไว้ตามข้อความช่วยเหลือ: ควรใช้เมื่อใด เช่นทำไมฉันถึงใช้คำสั่ง 'โทร' แทนการโทรโดยตรง ต่างกันอย่างไร ฉันสนใจรายงานสรุปที่วิเคราะห์ความเป็นไปได้ทั้ง 4 ข้อ (และอื่น ๆ หากขาดหายไป) จากมุมมองต่างๆ: กรณีการใช้งานที่แนะนำซึ่งออกแบบมาให้เหมาะสมการวางไข่ของกระบวนการบริบทการดำเนินการสภาพแวดล้อมการประมวลผลโค้ดส่งคืน หมายเหตุ: ฉันใช้ Windows XP SP3

7
ฉันจะเรียกใช้ไฟล์ bat ในพื้นหลังจากไฟล์ bat อื่นได้อย่างไร
ฉันมีสคริปต์ "ตั้งค่า" ซึ่งฉันเรียกใช้ในตอนเช้าซึ่งจะเริ่มโปรแกรมทั้งหมดที่ฉันต้องการ ตอนนี้บางคนต้องการการตั้งค่าสภาพแวดล้อมเพิ่มเติมดังนั้นฉันต้องห่อไว้ด้วยสคริปต์ BAT ขนาดเล็ก ฉันจะเรียกใช้สคริปต์ดังกล่าวบน Windows XP ในพื้นหลังได้อย่างไร CALL env-script.bat รันพร้อมกันกล่าวคือสคริปต์การตั้งค่าสามารถดำเนินการต่อได้หลังจากที่คำสั่งใน env-script สิ้นสุดลงแล้วเท่านั้น START/B env-script.bat เรียกใช้อินสแตนซ์อื่นของ CMD.exe ในพรอมต์คำสั่งเดียวกันปล่อยให้อยู่ในสถานะที่ยุ่งเหยิงจริงๆ (ฉันเห็นผลลัพธ์ของ CMD.exe ที่ซ้อนกันแป้นพิมพ์หยุดทำงานชั่วขณะสคริปต์ไม่ทำงาน) START/B CMD env-script.batให้ผลลัพธ์เดียวกัน ไม่มีแฟล็กใดใน CMD ที่ตรงกับบิลของฉัน

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