在 C 中执行 windows 命令
Executing windows commands in C
我有一个批处理文件,它将方向更改为特定的工具链并执行如下命令:
cd C:\Program Files (x86)\Atmel\Studio.0\toolchain\avr8\avr8-gnu-toolchain\bin
avr-objcopy -O binary C:\Users\cinar\Desktop\hextobin\GccApplication.elf C:\Users\cinar\Desktop\hextobin\GccApplication.bin
我想对我的 C 应用程序执行此操作。我找到了 ,尝试了 system();
命令,它部分起作用了。我可以这样称呼:
system("cd");
并找回方向。但是我不能用这个命令改变它:
system("cd C:\Program Files (x86)\Atmel\Studio.0\toolchain\avr8\avr8-gnu-toolchain\bin");
这导致了关于未知转义的编译警告,所以我添加了 \
转义并尝试了这个:
system("cd C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin");
我能够编译 运行 但这并没有改变方向。
是否可以使用 system()
执行我的命令?由于我只想改变方向并执行一个命令,所以我想保持简单。
更新:后来发现这个话题:
system("cd <path>") in a C program
然后用这个解决了我的查询:
chdir("C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin");
system("avr-objcopy -O binary C:\Users\cinar\Desktop\ff.elf C:\Users\cinar\Desktop\ff.bin");
您的程序有一些不正确的假设。首先,"cd"
和"dir"
不是程序,而是shell、cmd.exe
中内置的命令。其次,我怀疑您根本不需要更改当前目录。
无论如何,由于这是一个 Windows 系统,我会看一个关于如何使用 CreateProcess()
.
启动程序的示例
要更改当前目录,请查看 CreateProcess()
调用的 lpCurrentDirectory 参数。
还有
system("dir Users\whatEverNextFolder > test.txt");
我有一个批处理文件,它将方向更改为特定的工具链并执行如下命令:
cd C:\Program Files (x86)\Atmel\Studio.0\toolchain\avr8\avr8-gnu-toolchain\bin
avr-objcopy -O binary C:\Users\cinar\Desktop\hextobin\GccApplication.elf C:\Users\cinar\Desktop\hextobin\GccApplication.bin
我想对我的 C 应用程序执行此操作。我找到了 system();
命令,它部分起作用了。我可以这样称呼:
system("cd");
并找回方向。但是我不能用这个命令改变它:
system("cd C:\Program Files (x86)\Atmel\Studio.0\toolchain\avr8\avr8-gnu-toolchain\bin");
这导致了关于未知转义的编译警告,所以我添加了 \
转义并尝试了这个:
system("cd C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin");
我能够编译 运行 但这并没有改变方向。
是否可以使用 system()
执行我的命令?由于我只想改变方向并执行一个命令,所以我想保持简单。
更新:后来发现这个话题: system("cd <path>") in a C program
然后用这个解决了我的查询:
chdir("C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin");
system("avr-objcopy -O binary C:\Users\cinar\Desktop\ff.elf C:\Users\cinar\Desktop\ff.bin");
您的程序有一些不正确的假设。首先,"cd"
和"dir"
不是程序,而是shell、cmd.exe
中内置的命令。其次,我怀疑您根本不需要更改当前目录。
无论如何,由于这是一个 Windows 系统,我会看一个关于如何使用 CreateProcess()
.
要更改当前目录,请查看 CreateProcess()
调用的 lpCurrentDirectory 参数。
还有
system("dir Users\whatEverNextFolder > test.txt");