2016-05-27 7 views
0

Ich habe eine Batch-Datei, die AjaxMinfier läuft und komprimiert meine CSS und Jquery. Meine XML-Dateien verwenden relative Pfade. Jetzt hat alles in Windows 7 funktioniert, aber vor kurzem habe ich auf Windows 10 aktualisiert und jetzt sind meine Batch-Dateien fehlerhaft. Was passiert, wenn ich auf meine Batch-Datei doppelklicke, finde ich meine XML-Dateien nicht im selben Ordner.Batch-Datei funktioniert nicht in Windows 10 Upgrade

Ich habe sie wie diese

compress.bat 
css.xml 
jquery.xml 

ich immer den vollständigen Pfad in der Batch-Datei zu ajaxMinifier geben, und das ist in Ordnung. Es läuft, gibt aber relative Pfade zu meinen Dateien in meinem XML. Der Grund dafür ist, dass ich mehrere Kopien von Webseiten in verschiedenen Phasen habe.

Wenn ich mit der Befehlszeile gehe und meine Batch-Datei ausführen, funktioniert alles, aber natürlich bin ich in dem Ordner, aus dem ich die Batch-Datei ausführen. Wenn ich in Windows auf meine Batch-Datei klicke, kann ich nicht einmal meine XML-Dateien finden, die sich am selben Ort wie meine Batch-Datei befinden.

Ich habe eine Pause am Ende, und ich vermute, der Grund ist, dass es nach meinen XML-Dateien in C sucht: und nicht den Speicherort der Batch-Datei.

Hier ist meine Batch-Datei

::Work 
E:\Utilities\AjaxMinifier\AjaxMinifier.exe -JS -CLOBBER -xml jquery.xml 
E:\Utilities\AjaxMinifier\AjaxMinifier.exe -CSS -CLOBBER -xml css.xml 


pause > nul 

Die Pause in der Regel aus wird kommentiert, aber ich brauche, um zu sehen, was los ist.

und hier ist meine CSS-XML-Datei

<root> 
<output path="..\httpdocs\css\min\my.css"> 
    <input path="..\httpdocs\css\raw\buttons.css"/> 
    <input path="..\httpdocs\css\raw\menustyles.css"/> 
    </output> 
</root> 

und meine Jquery XML-Datei

<root> 
    <output path="../httpdocs\js\min\mutual.js"> 
    <input path="../httpdocs\js\raw\table_scroll.js"/> 
    <input path="../httpdocs\js\raw\mutual.js"/> 
    <input path="../httpdocs\js\raw\menudrop\menu_jquery.js"/> 
    </output> 
</root> 

Kann jemand mir sagen, wie es in den XML-Dateien im selben Ordner mit einem Doppelklick laden macht auf die Stapeldatei? Ich kann keine festen Pfade verwenden.

+0

'cd/d% \ dp0', um das Arbeitsverzeichnis in den Ordner zu ändern, in dem sich Ihre Batchdatei befindet. (wenn Sie Ihre Batchdatei doppelklicken, ist das Arbeitsverzeichnis '% windir% \ system32') – Stephan

Antwort

2

cd /d %~dp0 das Arbeitsverzeichnis in den Ordner zu ändern, in dem Sie Ihre Batch-Datei befindet. (Wenn Sie Ihre Batchdatei doppelklicken, ist das Arbeitsverzeichnis %windir%\system32)

0

Danke Stephan. Ich hätte Sie aufgestuft, aber Sie haben keinen Pfeil neben Ihrem Kommentar. Also konnte ich nicht. Nicht sicher, ob Sie einen Kommentar und keine Antwort hinzugefügt haben. Wenn du jedoch richtig antwortest, werde ich dich aufstocken, wenn du die beste Antwort gibst.

Ihre Antwort funktionierte nicht auf eigene, aber es führte mich zur richtigen Antwort. Die von Ihnen hinzugefügte Zeile war korrekt, benötigte jedoch eine andere Zeile.

setlocal 
cd /d %~dp0 
+0

' setlocal' ist nicht der Grund; Ich hatte einen Tippfehler in meinem Kommentar ('% \ dp0' anstelle von'% ~ dp0') Wahrscheinlich hast du es mit deiner zweiten Version intuitiv korrigiert. – Stephan

+0

Sie sind ziemlich richtig. Ich habe setlocal entfernt und es funktioniert immer noch. Übrigens war es keine Intuition. Basierend auf Ihrer Antwort habe ich noch mehr gegoogelt und den Code gefunden, aber ich hätte die richtige Antwort nicht gefunden, wenn Sie mir nicht die falsche Antwort gegeben hätten. Also danke trotzdem. –

Verwandte Themen