2010-04-13 65 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()是您需要的方法。