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

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

1
วิธีการหลีกเลี่ยงการเข้าร่วมข้าม?
ฉันต้องการอัปเดต / แทนที่ข้อมูลตารางโดยใช้ไฟล์แบตช์ และฉันเก็บ old_data ไว้ในไฟล์ old.txt และ new_data ในไฟล์ new.txt old.txt: 101 India new.txt: 1001 0891 และนี่คือแบทช์สคริปต์ของฉัน: demo.bat @echo off for /f "tokens=1* delims= " %%a in (old.txt) do ( for /f "tokens=1* delims= " %%b in (new.txt) do ( mysql -u root -p tiger -host localhost -database empsrc …

1
รับขนาดไฟล์และบันทึกลงในตัวแปรในคอนโซล Windows หรือไม่
ฉันกำลังสร้างสคริปต์แบทช์ windows ฉันต้องได้ขนาดที่เฉพาะเจาะจงของไฟล์เพื่อให้ฉันสามารถแทรกนั้นและค่าอื่น ๆ ที่ฉันได้ไปยังฐานข้อมูลแล้ว แต่ฉันก็ไม่สามารถหาวิธีที่เหมาะสมที่จะทำ สมมติว่าชื่อของไฟล์คือc:\test!basename!.zip(ฉันอยู่ใน for for loop ที่นี่) ฉันจะรับขนาดไฟล์และเก็บไว้ในตัวแปรได้อย่างไร? เครื่องนี้เป็นเซิร์ฟเวอร์ Win2008 ตอบ EliadTech เสนอวิธีแก้ปัญหาที่ฉันได้ลองไปแล้ว for %I in (test.jpg) do @echo %~zI ที่ทำงานโดยตรงในพรอมต์คำสั่ง แต่ล้มเหลวภายในสคริปต์ EliadTech ในขณะที่เราสงสัยแล้วคิดว่าจะตรวจสอบการหลบหนีดังนั้นเราจึงได้รับนี้ for %%I in (c:\test\!basename!.zip) do @echo yay %%~zI ทำงานเหมือนจับใจ ค่อนข้างผิดพลาดโง่ แต่ทุบตีทำให้ฉันเสียเกินกว่าจะซ่อม :)

0
EditPad Pro บันทึกไฟล์ Python เป็นไฟล์ Batch ()
ฉันใช้ EditPad Pro และตั้งประเภทไฟล์เป็น Python EditPad นั้นยอดเยี่ยมและฉันชอบ แต่เมื่อเร็ว ๆ นี้ฉันพยายามอัปเดต Google App Engine และฉันพบข้อผิดพลาดระหว่างการติดตั้งโดยระบุว่าสคริปต์ python ของฉันมีอักขระที่ไม่ใช่ ASCII นี่คือคำถามของฉันที่ Stackoverflow เมื่อฉันบันทึกไฟล์ใน Notepad เป็นข้อความปัญหาได้รับการแก้ไข จากนั้นผมสังเกตเห็นว่า EditPad Batch file output()ได้รับการบันทึกแฟ้มเป็นงูหลาม ฉันเชื่อว่าไฟล์ไพ ธ อนที่มี. สิ้นสุดลงท้ายจะต้องบันทึกเป็นข้อความ แต่Batch file output()เป็นการบันทึกเริ่มต้นสำหรับ. py มีวิธีในการเปลี่ยนการตั้งค่านี้หรือไม่? ฉันพยายามเปลี่ยนมันในตัวเลือก -> การตั้งค่า แต่ไม่สามารถใช้งานได้ และนี่คือสาเหตุของปัญหาที่ว่าทำไมมีอักขระที่ไม่ใช่ ASCII ในสคริปต์หรือไม่

2
Batch File Pause
ฉันกำลังทดสอบแบตช์ไฟล์และฉันหยุดชั่วคราวเพื่อตรวจสอบอีกครั้งว่าสคริปต์ทำงานได้อย่างถูกต้อง คำถามของฉันคือถ้าสคริปต์หยุดชั่วคราวและฉันเปลี่ยนสคริปต์เพิ่มบรรทัดหรือนำออกบันทึกและกดปุ่มเพื่อดำเนินการต่อการเปลี่ยนแปลงของฉันจะโหลดหรือฉันต้องเรียกใช้ไฟล์แบตช์ อีกครั้งเพื่อให้การเปลี่ยนแปลงของฉันมีผล

1
7zip - บีบอัดเนื้อหาของแต่ละโฟลเดอร์ในไดเรกทอรี
โดยทั่วไปฉันต้องการบีบอัดแต่ละไฟล์ในแต่ละโฟลเดอร์ลบไฟล์ต้นฉบับและปล่อยให้ไม่มีการบีบอัดโฟลเดอร์ ฉันไม่ต้องการบีบอัดทั้งโฟลเดอร์เฉพาะเนื้อหาในนั้น ด้วย 7zip และอัลกอริทึม LZMA2 ที่ระดับการบีบอัดแบบอัลตร้า ฉันเดาว่าฉันต้องการไฟล์แบตช์ แต่ฉันก็ไม่ค่อยเก่งเท่าไหร่

2
วิธีการป้อน YES ในไฟล์แบตช์โดยอัตโนมัติ
ฉันกำลังถอนการติดตั้งลูกค้า Citrix โดยใช้ไฟล์แบตช์ แบตช์เริ่มต้นการถอนการติดตั้งสำเร็จ แต่ฉันต้องป้อน YES (เพื่อยืนยัน) โดยอัตโนมัติ ฉันจะทำสิ่งนี้ในไฟล์แบตช์ได้อย่างไร

1
ฉันจะทำให้แบทช์ไฟล์แทนที่สตริงย่อยภายในไฟล์ข้อความโดยไม่เปลี่ยนเค้าโครงได้อย่างไร
ฉันพยายามสร้างแบตช์ไฟล์ที่พบสตริงย่อยภายในไฟล์ที่กำหนดโดยไม่ต้องเปลี่ยนเลย์เอาต์ไวยากรณ์หรือรูปแบบที่มีอยู่ของไฟล์อินพุตที่มีอยู่ ฉันมีการจัดการที่จะได้รับสคริปต์นี้เพื่อแทนที่สตริงที่ฉันกำหนด แต่มันสมบูรณ์การเปลี่ยนแปลงรูปแบบเดิมของเอกสารของฉัน: @echo off setlocal enableextensions set "search=Test incomplete..." set "replace=Test successfully completed!" set "textFile=Testing document.txt" for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do ( set "line=%%i" setlocal enabledelayedexpansion >>"%textFile%" echo(!line:%search%=%replace%! endlocal ) สิ่งสำคัญที่ฉันต้องการบรรลุคือสคริปต์ที่สามารถแก้ไขส่วนเดียวของไฟล์ข้อความที่ผู้ใช้กำหนด

2
จะสร้างไฟล์แบตช์เพื่อค้นหาไดรฟ์ทั้งหมดได้อย่างไร
ฉันจะรับไฟล์แบตช์นี้เพื่ออ่านไดรฟ์ทางกายภาพและแมปทั้งหมดได้อย่างไร ทำงานได้ดีกับ C: แต่จะไม่อ่านไดรฟ์อื่น @echo off set filePath= for /R c:\ /d %%a in (*) do if exist "%%a\FileName" set filePath=%%a& goto continue :continue if defined filePath echo %COMPUTERNAME% %username% yes >> \\server\%computername%.txt

1
เรียกใช้ cygwin อินพุตเชลล์เพื่อจัดการ Ctrl + C โดยไม่ต้องพร้อมท์“ ยุติแบทช์งาน”
โดยทั่วไปผู้ใช้ Windows ไม่สามารถเปิดไฟล์แบตช์และระงับTerminate batch job (Y/N)พรอมต์Ctrl+Cโดยไม่มีวิธีแก้ไขปัญหาหรือข้อ จำกัด บางอย่าง แต่โดยเฉพาะอย่างยิ่งฉันสงสัยว่าCygwin shell ( ทุบตี ) โดยเฉพาะฉันสามารถเปิดมันในลักษณะที่จะจัดการCtrl+Cโดยไม่ต้องเผชิญกับTerminate batch job (Y/N)พรอมต์เมื่อออกจากเปลือก บางทีถ้าเปิดตัวผ่านทางไฟล์ชุดจำเป็นต้องทำให้เกิดการที่พรอมต์บนCtrl+Cแล้วไม่วิธีที่มีประสิทธิภาพเพื่อเปิดมันอยู่ด้านนอกของไฟล์ชุด? ฉันรู้ว่าไฟล์ Cygwin.bat กำหนดค่าตัวแปรบางอย่างดังนั้นฉันจึงอยากจะสามารถกำหนดค่าตัวแปรที่คล้ายกันด้วยวิธีแก้ปัญหาอื่น ฉันต้องการคำตอบทั่วไป แต่ฉันใช้wrapper ConsoleZเพื่อเก็บเซสชันเทอร์มินัลดังนั้นฉันจะให้น้ำหนักมากขึ้นสำหรับคำตอบที่ทำงานภายในกรอบนี้

2
Batch: รวมสองไฟล์เข้าด้วยกันตามลำดับที่เฉพาะเจาะจง
ให้ฉันเริ่มต้นด้วยการกล่าวว่าฉันใหม่ในการเขียนโปรแกรมนี้ในชุดไฟล์ ที่กล่าวว่าฉันต้องการรวมสองไฟล์และฉันเริ่มต้นด้วยรหัสต่อไปนี้: copy Test1.sol + Test2.sol Test.sol /B รหัสนี้ทำให้เนื้อหาของ Test2.sol ที่ด้านล่างของ Test1.sol ซึ่งไม่ใช่สิ่งที่ฉันต้องการทำ แต่ฉันอยากจะนำเนื้อหาของ Test2.sol ไปไว้ในที่เฉพาะเจาะจงใน Test1.sol เพื่อให้ชัดเจนยิ่งขึ้น สมมติว่าเนื้อหาของ Test2.sol คือ: 401 TEXT1 12345 123444 401 TEXT2 12345 123444 401 TEXT3 12345 123444 และเนื้อหาของ Test1.sol คือ: ********************** ** HEADER 1 ** ********************** Message1 Message2 ********************** ** HEADER 2 ** ********************** …

1
เรียกใช้ Atom โดยใช้ไฟล์ค้างคาวหลังจากเปลี่ยนไดเรกทอรี
ฉันเขียนในไฟล์ bat ของฉัน cmd /k cd /d"C:\Users\amanz\Desktop\Introduction - Computing\Java files" call atomer.bat ตอนนี้ดูเหมือนว่าจะเปลี่ยนไดเรกทอรีและหยุดอยู่ตรงนั้น ดูเหมือนจะไม่เรียกไฟล์ atomer.bat รหัสต่อไปนี้จะเห็นในไฟล์ atomer.bat: start atom .

1
สำหรับการวนซ้ำในไฟล์แบตช์ไม่ย้ายไฟล์
ฉันวนลูปผ่านไดเรกทอรีเฉพาะและหากไฟล์ zip หรือไฟล์มีอยู่พวกเขาจะถูกย้ายไปยังโฟลเดอร์ที่สองในไดเรกทอรีนั้น แต่รหัสด้านล่างดูเหมือนจะไม่ทำงานนั่นคือมันไม่ย้ายไฟล์ ผมทำอะไรผิดหรือเปล่า? for %%i in (D:\test\*.*) do if %%~xi == ".zip" move /Y "D:\test\%%~ni%%~xi" "D:\test\complete"

1
เรียกใช้งานแบ็ตช์เป็นระยะหลังจากกระบวนการสิ้นสุดลง
ฉันใช้ FreeFileSync เพื่อสร้างชุดงานเพื่อสำรองโปรไฟล์ Firefox ของฉันและฉันไม่แน่ใจว่าจะเรียกใช้เป็นระยะ ๆ (ทุกชั่วโมงหรือมากกว่านั้น) หรือหลังจาก Firefox ถูกปิด เว็บไซต์ของ FreeFileSync แนะนำให้ใช้งานแบ็ตช์กับ Task Scheduler ของ Windows แต่ฉันไม่สามารถหาวิธีการจัดกำหนดการงานแบ็ตช์ให้มีระยะเวลาน้อยกว่า "รายวัน" และฉันไม่สามารถหาวิธีทริกเกอร์งานแบ็ตช์ได้หลังจากกระบวนการบางอย่างสิ้นสุดลง ฉันจะรันงานแบ็ตช์ทุกชั่วโมง X และฉันจะตั้งค่างานแบ็ตช์ให้ทำงานหลังจากกระบวนการ Firefox สิ้นสุดลงได้อย่างไร? สำหรับคำถามที่สองนั้นฮาร์ดดิสก์จะเขียนไฟล์ขนาดเล็กได้ถึง 1 GB ได้นานเท่าไร? ฉันไม่แน่ใจว่าปริมาณงานประเภทนี้ถือเป็นค่าเฉลี่ยหรือผิดปกติเพื่อให้สามารถระบุได้ว่าจะส่งผลกระทบอย่างมีนัยสำคัญต่ออายุการใช้งาน HDD หรือไม่ ขอบคุณ

1
แบทช์เพื่อกำหนดอักษรชื่อไดรฟ์ใหม่ตามชื่อโวลุ่ม
ฉันมีไดรฟ์ข้อมูล "WINPE" และฉันพยายามรับชุดสคริปต์ที่จะกำหนดอักษรชื่อไดรฟ์ "Z:" มีคนให้สคริปต์ของฉันด้านล่าง แต่มันใช้งานไม่ได้ for /f %%D in ('wmic volume get DriveLetter^, Label ^| find "WINPE"') do set myDrive=%%D @echo off echo =============================================================================== echo. Mobile Repairs Install echo =============================================================================== echo. 1 - Install Windows 7 Home Premium echo. 2 - Install Windows 7 Prefessional echo. 3 - Install …

1
เป็นไปได้ไหมที่จะสร้าง VBScript ซึ่งเรียกใช้งานสคริปต์แบบแบตช์ภายในตัวเอง?
ฉันรู้ว่ามันฟังดูแปลก แต่ความคิดของฉันคือการสร้างไฟล์ข้อความเดียวซึ่งมี VBScript และ Batch Script อยู่ภายในเช่นถ้าฉันเรียกใช้สคริปต์นั้นเป็น VBScript มันเรียกตัวเองว่าเป็นสคริปต์ชุดและสคริปต์ชุดทำบางอย่าง งาน cmd.exe ฉันรู้ว่าคุณสามารถใช้วิธี. ShellExecute แล้วเรียกใช้งานคอมม่าหลายรายการโดยใช้ CMD / C [... ] แต่มันยากที่จะอ่าน ความพยายามของฉันคือ: If False Then goto batchLines End If [...VBScript continues here...] Wscript.Quit :batchLines [...batch Script starts here...] แต่เท่าที่เห็นก็ไม่ได้ผลเลย

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