2017-06-14 2 views
0

Ich verwende Quality Center, um Tests in Windows 8 auszuführen. Die VBScript-Datei erstellt einen temporären (Zeitstempel) Workspace/Ordner zum Klonen der Git-Repository und Ausführen des Tests. Wenn ich versuche, den Ordner am Ende des Tests zu entfernen, funktioniert er nicht und gibt einen Fehler aus: Ungültige Feldtypdefinition.Ordner kann nicht mit GIT Repo über Befehl in VBScript

Dieser Code funktioniert einwandfrei, wenn ich mit einem Nicht-Git-Repository und einem statischen Projekt arbeite. Wenn ich den Ordner .git manuell lösche, kann das Skript die restlichen Ordner/Dateien entfernen.

'''workspace = "C:\tests\20170613224942" 
Dim objFSO, objFolder 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
objFSO.CreateFolder(workspace) 

'git clone 
'Test Execution 

Dim objFSO, objFolder 
Set objFSO = CreateObject("Scripting.FileSystemObject") 

objFSO.DeleteFolder(workspace) 

Ich habe bereits versucht (erfolglos) so ähnlich:

objShell.Run "rmdir /S /Q " & workspace 

Ich weiß nicht, ob sein Problem mit versteckten Ordner Ich habe versucht, so diese:

del /s /a *.git 

Aber diese nur funktioniert für Dateien und in diesem Fall ist nur der Ordner ausgeblendet. Nicht die Unterordner/Unterdateien.

Kann mir jemand helfen, dieses Problem zu lösen? Wie kann ich die Ordnerentfernung automatisch per Skript erzwingen? Danke.

Antwort

0

Können Sie versuchen:

git rm -r gitDirectoryToRemove 

und Ihr Code dann die Eltern zu entfernen, wenn

erforderlich
+0

Ich versuchte und gib mir den Fehler: fatal: Kein git-Repository (oder eines der übergeordneten Verzeichnisse): .git – koxta

+0

Got it. Dann versuchen Sie, von einem Nicht-Git-Verzeichnis auf das GIT/Kommando zuzugreifen. Sie sollten das Verzeichnis in den übergeordneten git-Ordner ändern, bevor Sie den git-Befehl eingeben. – smilyface

+0

Innerhalb des git übergeordneten Ordners funktioniert der Befehl, aber nur das Projekt/der Code wird entfernt. Der Ordner ** .git ** (problematischer Ordner) wird nicht gelöscht. – koxta

0

eine vorübergehende Lösung gefunden. Vielleicht keine elegante, aber löst das Problem. Ich erstellte eine .bat Datei nur zum Entfernen des Ordners durch Argument übergeben und ich rufe es in VBS.

Bat File:

@echo off 
@echo Try to removing %1 
rmdir "%1" /s/q 

VBS Call:

Set objShell = CreateObject("Wscript.Shell") 
objShell.Run "C:\tests\rm_workspace.bat " & workspace 

Entfernen indirekt, es funktioniert wie ein Charme. Der Grund: weiß immer noch nicht warum.

Verwandte Themen