2009-05-20 19 views
1

Visual Studio 2005: Ich bin von Post-Build-Ereignis auf die Verwendung der externen Tools-Menü mit einer Batch-Datei verschieben.Visual Studio Externe Tools Argument Problem

Vorher hatte ich

cd "$(ProjectDir).." 
for /f "tokens=2,3,4 delims=/ " %%a in ('date /t') do set bdate=%%c.%%a.%%b 
pkzipc -add -overwrite -dir=current "Z:\Technology\VisualStudio2005\Project Zips\$(ProjectName)_%bdate%_%username%.zip" "$(ProjectDir)*" 

Wenn ich versuche, dies als ein externes Tool zu verwenden, um es „“ um den Projektnamen wickelt und füge eine zusätzliche \ auf SolutionDirectory (Ich bin nicht sicher, ob ich Projekt oder Lösung dir will geht nach vorn, scheint weder zu arbeiten)

der Code ich bin versucht zu verwenden: die aus

pkzipc -add -overwrite -dir=current Z:\Technology\VisualStudio2005\Project Zips\%2\%2_%bdate%_%username%.zip %1* 

dieser Code funktioniert nicht, dass ich der erste Teil Strippen Seite "" wird beantwortet, wodurch das Extra \ am Ende der Variable projectdir übrig bleibt. Wie kann ich das beheben?

+0

Es scheint, dass dies nicht so gut funktioniert wie erhofft, da das Zielverzeichnis statt/debug auf den Ordner/obj zeigt. Es vermisst also alle unterstützenden Projekte Ihrer Lösung. Wenn Sie die Lösungsdatei selbst auswählen und die externen Tools ausführen, wird das Visual Studio-IDE-Verzeichnis oder das Lösungsverzeichnis zurückgegeben, jedoch immer noch nicht der Zielordner der Lösung. – Maslow

Antwort

0

ich Liquidation statt der Befehlszeile ein speziell angefertigten .net-Anwendung Dafür war es weniger kompliziert.

1

Ich bin nicht sicher, ich folge dir (und es gibt keine direkte Frage), aber wenn Sie einen Parameter in Anführungszeichen gesetzt haben, und Sie wollen, dass sie fallen zu lassen, könnten Sie eine andere Variable verwenden:

set THEDIR=%1 
set THEDIR=%THEDIR:"=% 
+0

haben nicht getestet, aber klingt wie das hilft mit dem einen Argument, was ist mit dem Extra \? Meine Frage ist der Code, den ich versuche zu verwenden funktioniert nicht wegen dieser zusätzlichen Anhänge zu den Daten, die ich brauche, und ich bin nicht vertraut mit DOS/Win Batch-Dateien all das. – Maslow

+0

Das funktioniert ok in der Eingabeaufforderung, aber aus anderen Gründen in meinem Fragekommentar tut die externe Tools nicht, was ich glaube, dass ich dies erreichen müsste. – Maslow

0

Sie können auch das letzte Zeichen trimmen wie folgt aus:

SET SOMEVAR=%SOMEVAR:~0,-1% 

Wenn die Zitate und die \ in derselben variablen erscheinen, könnten Sie diese stattdessen tun:

SET SOMEVAR=%SOMEVAR:~1,-2% 
+0

Gibt es irgendwo dort könnte ich diese Befehle für die zukünftige Verwendung verweisen? Ich suchte nach Dos Batch-Dateien und konnte nichts so detailliert/komplex finden. – Maslow

+0

Die Details zu Teilstrings und zum Ersetzen von Strings finden Sie, indem Sie SET /? Weitere hervorragende Quellen für nützliche Tricks sind CMD /? und für /? – JimG

+0

Dies scheint in der Eingabeaufforderung cmd direkt zu funktionieren, aber nicht in einer Batchdatei, die über externe Tools in Visual Studio verbunden ist. – Maslow

0

Wahrscheinlich setzen Sie das externe Tool falsch, Sie müssen den vollständigen Pfad zu pkzipc im Feld Command: eingeben und die Argumente in die Argumente einfügen:.
Auch Sie haben keinen Zugriff auf Skript params so% 1% 2 nicht funktionieren würde, argaument Sie Feld dann sein sollte:

-add -overwrite -dir=current "Z:\..\$(ProjectName)_%bdate%_%username%.zip" "$(ProjectDir)*" 
+0

Der Befehl, den ich gesetzt habe, ist eine Batchdatei mit diesen Informationen, da% bdate% keine echte Umgebungsvariable ist und müsste sich täglich ändern. – Maslow

Verwandte Themen