Rumah >pembangunan bahagian belakang >Golang >Mengapakah `exec.Command('del', ...) ` Gagal dalam Golang pada Windows dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah `exec.Command('del', ...) ` Gagal dalam Golang pada Windows dan Bagaimana Saya Boleh Membetulkannya?

Susan Sarandon
Susan Sarandonasal
2024-12-29 02:23:11560semak imbas

Why Does `exec.Command(

Melaksanakan Perintah Windows dalam Golang: Menyelesaikan masalah 'del' Executable Not Found Ralat

Percubaan anda untuk melaksanakan perintah "del" menggunakan exec. Command("del", "c:\aaa.txt") dalam Golang menghasilkan mesej ralat yang menunjukkan bahawa fail boleh laku tidak ditemui dalam laluan sistem.

Tidak seperti sistem pengendalian lain, Windows mempunyai arahan terbina dalam yang tidak tersedia sebagai boleh laku kendiri. Arahan ini dilaksanakan melalui Command Prompt (cmd.exe). Untuk melaksanakan arahan ini dalam Golang, anda perlu menggunakan awalan "cmd /c".

Coretan kod berikut menunjukkan cara melaksanakan perintah "del" dengan betul dalam Windows menggunakan Golang:

package main

import (
    "fmt"
    "os/exec"
    "runtime"
)

func main() {
    var c *exec.Cmd

    switch runtime.GOOS {
    case "windows":
        c = exec.Command("cmd", "/C", "del", "D:\a.txt")

    default: // Mac & Linux
        c = exec.Command("rm", "-f", "/d/a.txt")
    }

    if err := c.Run(); err != nil {
        fmt.Println("Error:", err)
    }
}

Dalam coretan kod ini:

  • Kami menggunakan masa jalan suis.GOOS untuk menentukan sistem pengendalian.
  • Untuk Windows ("windows"), kami menggunakan awalan "cmd /C" sebelum arahan, diikuti dengan arahan itu sendiri dan hujahnya.
  • Untuk sistem pengendalian lain ( Mac dan Linux), kami menggunakan arahan "rm" dan bukannya "del".

Kod ini akan melaksanakan arahan "del" dengan betul dalam Windows dan memadamkan fail yang ditentukan, manakala percubaan sebelumnya untuk melaksanakan "del" secara langsung akan gagal.

Atas ialah kandungan terperinci Mengapakah `exec.Command('del', ...) ` Gagal dalam Golang pada Windows dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn