我在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
。当我在命令提示符中执行程序时,程序按预期工作,但如果我在“运行”窗口中键入命令,则不会创建任何文件。
如何修改程序或环境以使其如上所述工作?
答案 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
它将在与自己的批处理文件相同的目录中创建一个空文件。