1

我用 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,我将它放在我的桌面上并隐藏。然后我将我的桌面添加到我的路径环境变量中。

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

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

4

1 回答 1

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

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

于 2012-09-28T19:33:00.950 回答