2012-04-14 4 views
-1

ich weiß, es ist nicht Gott, Fragen zu MS dos Fragen jetzt zu stellen. aber ich habe ein kleines Problem Ich erstelle ein Installer-Projekt zu einem Antragsformular, dass ich ein create-Datenbank-Skript mit einem angegebenen Pfad ausführen muss. sql engine gibt eine Fehlermeldung aus, wenn der Pfad nicht existiert. Daher muss ich prüfen, ob der Pfad vorhanden ist. Wenn nicht, muss ich den Pfad erstellen, um das zu tun, aber das funktioniert nicht so, wie ich es erwarte. wenn ich die gleiche bat-Datei zum zweiten Mal ausführen gibt es mir unter FehlerDOS-Befehl, wenn vorhanden funktioniert nicht richtig

„ein Unterverzeichnis oder eine Datei \ Installationen \ Datenbank bereits vorhanden ist“

hören ist mein Code

c: 
IF NOT EXIST c:\installations\database GOTO NODIR 
cd C:\installations\database 
:NODIR 
mkdir \installations\database\ 

Bitte hilf mir, das zu lösen. wenn ich eine Lösung von sql es Selbst erhalten kann, die meine Antwort cz persönlich sein wird, mag ich DOS Reihen nicht :)

danke im Voraus.

Antwort

2

i mir eine Lösung für dieses Dankten fand heraus, für die Unterstützung

können wir überprüfen, ob ein Ordner vorhanden ist oder nicht, indem Sie das folgende Skript ausführen:

master.dbo.xp_fileexist @file 

Reference

und wir können

SET @Path = 'E:\temp\' 
SET @MD = ' mkdir ' + @Path +'WK' + @wk_no 
EXEC xp_cmdshell @MD, no_output 

extracted form

Vielen Dank für die Unterstützung für diese Frage einen Ordner mit folgendem Befehl erstellen. Ich denke, das ist die ideale Lösung für meine Anforderung. Bitte zögern Sie nicht, Ihre Gedanken hinzuzufügen.

0

Ich bin kein Batch-Guru DOS aber hier sind ein paar Vorschläge:

  1. cd C:\installations\database das wirklich falsch zu sein scheint. Was ist mit:

    C: 
    cd installations\database 
    
  2. wieder, warum Sie nicht überprüfen Sie im richtigen Verzeichnis sind zuerst:

    :NODIR 
    C: 
    mkdir installations 
    cd installations 
    mkdir database 
    
+0

Ich tat dies versuchen, aber es hat nicht funktioniert Sache ist, wenn der Ordner in der angegebenen Position Skript existiert nicht erstellen, aber wenn der Ordner es gibt mir eine Fehlermeldung vorliegt – Prabhakantha

0

Ihr ursprünglicher Code hatte eine fehlerhafte Logik.

Es änderte nur das Verzeichnis, wenn das Verzeichnis bereits existierte, dann fiel es in den Code, um das Verzeichnis zu erstellen.

Wenn Sie überprüfen, ob ein Verzeichnis existiert, fügen Sie am besten \ an das Ende an, um sicherzustellen, dass IF EXIST nur mit einem Verzeichnis und nicht mit einem Dateinamen übereinstimmt.

Hier ist die Logik korrigiert.

c: 
if not exist "c:\installations\database\" mkdir "c:\installations\database" 
cd "c:\installations\database"