从“运行”窗口执行带有参数的程序

时间:2012-09-28 19:24:01

标签: c windows command-line

我在C中编写了一个简单的程序,用于在当前目录中创建一个文件(文件名来自第一个参数):

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv){
   FILE *fp;
   if(argc != 2) exit(1);
   fp = fopen(argv[1], "w");
   if(fp == NULL) exit(1);
   fclose(fp);
   return 0;
}

我使用Visual Studio C编译器编译它,生成可执行文件createfile.exe,我将其放在桌面上并隐藏。然后我将桌面添加到我的Path环境变量中。

我的目标是能够打开“运行”窗口(使用Win + R)并键入createfile myfile.tex以在我的桌面上创建文件myfile.tex。当我在命令提示符中执行程序时,程序按预期工作,但如果我在“运行”窗口中键入命令,则不会创建任何文件。

如何修改程序环境以使其如上所述工作?

1 个答案:

答案 0 :(得分:1)

文件可能已写入,但您无法控制工作目录。您可以使用SetCurrentDirectory,但在Windows下,桌面可以位于任何位置,并且是本地化的。它在我的法语Windows XP中被命名为“Bureau”。那是SHGetSpecialFolderLocation进来的时候。

大多数人放弃而不是程序,他们创建这个批处理文件:

@echo off

pushd %~dp0
IF NOT EXIST "%1" (
rem this next line is like the unix utility "touch"
echo. 2> %1
)
popd

它将在与自己的批处理文件相同的目录中创建一个空文件。