เอกสารประกอบสำหรับปัญหาและคำถามทั่วไปใน node Execute Command ใน n8n ซึ่งเป็นแพลตฟอร์มอัตโนมัติของ workflow รวมถึงรายละเอียดของปัญหาและแนวทางแก้ไขที่แนะนำ
ต่อไปนี้เป็นข้อผิดพลาดและปัญหาทั่วไปบางประการเกี่ยวกับ Execute Command และขั้นตอนในการแก้ไขหรือแก้ไขปัญหาเหล่านั้น
คำสั่งล้มเหลว: <command> /bin/sh: <command>: ไม่พบ
ข้อผิดพลาดนี้เกิดขึ้นเมื่อสภาพแวดล้อมเชลล์ไม่พบคำสั่งใดคำสั่งหนึ่งใน Command parameter
หากต้องการแก้ไขข้อผิดพลาดนี้ ให้ตรวจสอบสิ่งต่อไปนี้:
- ตรวจสอบว่าคำสั่งและข้อโต้แย้งไม่มีการพิมพ์ผิด Command parameter
- ตรวจสอบว่าคำสั่งอยู่ใน
PATHของผู้ใช้ที่ใช้ n8n - หากคุณใช้ n8n ด้วย Docker ให้ตรวจสอบว่าคำสั่งดังกล่าวพร้อมใช้งานภายในคอนเทนเนอร์หรือไม่โดยลองเรียกใช้ด้วยตนเอง หากคำสั่งของคุณไม่รวมอยู่ในคอนเทนเนอร์ คุณอาจต้องขยายอิมเมจ n8n อย่างเป็นทางการด้วย a รูปภาพที่กำหนดเอง ซึ่งรวมถึงคำสั่งของคุณด้วย
หาก n8n กำลังทำงานอยู่:
# Find n8n's container ID, it will be the first column docker ps | grep n8n # Try to execute the command within the running container docker container exec <container_ID> <command_to_run>หาก n8n ไม่ทำงาน:
# Start up a new container that runs the command instead of n8n # Use the same image and tag that you use to run n8n normally docker run -it --rm --entrypoint /bin/sh n8nio/n8n -c <command_to_run>
ข้อผิดพลาด: เกินความยาว stdout maxBuffer
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคำสั่งของคุณส่งคืน output มากกว่าที่ node Execute Command สามารถประมวลผลได้ในคราวเดียว
เพื่อหลีกเลี่ยงข้อผิดพลาดนี้ ให้ลด output ที่คำสั่งของคุณสร้างขึ้น ตรวจสอบหน้าคู่มือคำสั่งหรือเอกสารประกอบเพื่อดูว่ามีแฟล็กที่ต้องจำกัดหรือกรอง output หรือไม่ ถ้าไม่เช่นนั้น คุณอาจต้องไพพ์ output ไปยังคำสั่งอื่นเพื่อลบข้อมูลที่ไม่จำเป็นออก
คำสั่ง PowerShell ถูกตัดทอนเมื่อขึ้นบรรทัดใหม่
บน Windows node Execute Command จะส่งผ่านไฟล์ Command parameter ให้กับเชลล์ระบบเป็น string เดียว หากคำสั่งของคุณมีการขึ้นบรรทัดใหม่ เชลล์จะดำเนินการเฉพาะบรรทัดแรกและละเว้นส่วนที่เหลือ
นี่เป็นข้อจำกัดของเชลล์ Windows พื้นฐาน cmd.exe กระบวนการถือว่าแต่ละการแบ่งบรรทัดเป็นจุดสิ้นสุดของคำสั่ง
หากต้องการแก้ไขปัญหานี้ ให้เขียนคำสั่ง PowerShell ลงในบรรทัดเดียว หากคำสั่งมีความซับซ้อน ให้รวมคำสั่งด้วยเครื่องหมายอัฒภาค:
powershell -Command "Get-ChildItem C:\Data; Write-Output 'Done'"
สำหรับสคริปต์ที่ยาวขึ้น ให้บันทึกสคริปต์ลงในไฟล์แล้วรันด้วยไฟล์ -File ตั้งค่าสถานะแทน:
powershell -File C:\Scripts\my-script.ps1

