ฉันจะเรียกใช้ไฟล์แบตช์จากงานที่กำหนดเวลาผ่านตัวแทนของเซิร์ฟเวอร์ SQL ได้อย่างไร


12

ฉันพยายามเรียกใช้ไฟล์แบตช์ (Windows) จากภายในงานตัวแทนของ SQL Server ภายใต้ SQL Server 2008 R2 ในขั้นตอนงานฉันได้สร้างขั้นตอนใหม่ตั้งค่าประเภทเป็น "ระบบปฏิบัติการ (CmdExec)" ฉันเริ่มพยายามใส่ชื่อแบตช์ไฟล์ในฟิลด์ "คำสั่ง" มันทำให้เกิดข้อผิดพลาดที่ไม่สามารถหาไฟล์ได้

จากนั้นฉันลอง: cmd.exe c: \ test.bat

สิ่งนี้เริ่มต้น แต่ไม่เสร็จสมบูรณ์ (และดูเหมือนว่าจะใช้งานไม่ได้จริง ๆ )

ฉันพยายามตัดชื่อแบตช์ไฟล์ในเครื่องหมายคำพูด: cmd.exe "C: \ test.bat" แต่นั่นก็ไม่ได้สร้างความแตกต่างเลย

ชุดค่าผสมเวทมนต์อะไรที่จะทำให้มันใช้งานได้?


คุณใช้เส้นทางที่สมบูรณ์เมื่อคุณพบข้อผิดพลาด "ไม่พบไฟล์" หรือไม่ พา ธ ใช้งานได้บนเซิร์ฟเวอร์ที่เรียกใช้งานไม่ใช่เฉพาะเวิร์กสเตชันของคุณ เส้นทางภายในไฟล์แบตช์เป็นแบบสัมบูรณ์หรือไม่
จอนแห่งการค้าขายทั้งหมด

ใช่ฉันใช้เส้นทางเต็ม มันเป็นเส้นทางที่ถูกต้องบนเซิร์ฟเวอร์ที่ใช้งาน ไฟล์แบตช์ไม่มีอะไรมากไปกว่าการทดสอบอย่างง่าย ๆ : echo> C: \ temp \ itworks.txt
Paul Mrozowski

คำตอบ:


11

หากหน่วยความจำให้บริการฉันอย่างถูกต้อง:

cmd.exe /c "c:\test.bat"

จำเป็นต้องใช้เครื่องหมายคำพูดหากมีช่องว่างในพา ธ หรือชื่อไฟล์


1

ตรวจสอบการอนุญาตที่ใช้สำหรับบริการตัวแทนงานด้วย อาจเป็นได้ว่าผู้ใช้ที่เรียกใช้บริการไม่ได้รับอนุญาตให้ดูไฟล์

โชคดี


0

ตรวจสอบว่าคุณมีสิทธิ์ในการเรียกใช้ไฟล์แบตช์ในตำแหน่งไดรฟ์และโฟลเดอร์นั้น

อย่าลืมเมื่อคุณเรียกใช้ด้วยตนเองข้อมูลประจำตัวของคุณจะถูกใช้ แต่เมื่อมันทำงานโดยอัตโนมัติโดยตัวแทน SQL, ข้อมูลประจำตัวของตัวแทนและสิทธิ์ที่จะใช้


0

เพียง แต่"c:\test.bat"จะทำงาน


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