2010-04-13 70 views
0

看看为我的应用程序创建一个简单的批处理文件。我的应用程序在运行时需要一些目录。目录或更好方法的批处理脚本

我以为只是做一个批处理脚本第一种方法:

@ECHO OFF 
IF NOT EXIST C:\App GOTO :CREATE ELSE GOTO :DONTCREATE 

:CREATE 
MKDIR C:\App\Code 
ECHO DIRECTORY CREATED 

:DONTCREATE 
ECHO IT WAS ALREADY THERE 

1)这不运行,因为我期望的那样。无论是:CREATE还是:DONTCREATE似乎都运行?那么我该如何做好?

输出:

A subdirectory or file C:\App\Code already exists. 
DIRECTORY CREATED 
IT WAS ALREADY THERE 

所以它进入既真实和虚假陈述?

2)该应用程序是一个C#WPF应用程序。对于我在这里要做的事情(如果他们还不存在,创建几个目录) - 我应该以其他方式做吗?也许在应用程序中运行?

编辑:好吧,高兴只是在C#代码 - 但任何人都可以解释我的批处理问题?

回答

2

问题也许是你认为的GOTO的:

if (!Directory.Exists(@"c:\app\code") 
{ 
    Directory.CreateDirectory(@"c:\app\code"); 
} 
else 
{ 
    Console.WriteLine("Directory already exists!"); 
} 

更多信息,请参见本页面目标作为方法的起点。它们只是文件中的标签。这意味着,

IF NOT EXIST C:\App GOTO :CREATE ELSE GOTO :DONTCREATE 

执行后

:CREATE 

拿起,然后继续前进的剧本的权利,通过

:DONTCREATE 

,直到达到文件的末尾。如果你想在别的地方去,你必须添加另一个GOTO:CREATE结束。通常情况下,将其告知GOTO:EOF(内置标签),如下所示:

@ECHO OFF 
IF EXIST C:\App GOTO :DONTCREATE 

:CREATE 
MKDIR C:\App\Code 
ECHO DIRECTORY CREATED 
GOTO :EOF 

:DONTCREATE 
ECHO IT WAS ALREADY THERE 
+0

谢谢您的解释 – baron 2010-04-13 05:26:01

1

最简单的答案可能是您已经想到的 - 在运行时从应用程序创建目录。

DirectoryInfo.Create()是您需要的方法。