2016-05-08 10 views
1

Wenn ich in cmd Prompt folgenden Befehl ausführen, funktioniert es:Batch-Skript vs Befehlszeile

for /R %f in (*.shp) do ogr2ogr -nln merge -update -append merge.shp %f 

aber wenn ich es aus .bat-Datei ausführen funktioniert es nicht. Das Sagen von -nln war unerwartet.

Gibt es sowieso ich könnte dies aus .bat-Datei ausführen.

Antwort

3

Das Zeichen % hat eine spezielle Bedeutung für Befehlszeilenparameter und FOR Parameter.

Um ein Prozent als reguläres Zeichen zu behandeln, verdoppeln:

dies für mehr
@echo on 
for /R %%f in (*.shp) do ogr2ogr -nln merge -update -append merge.shp %%f 
pause 

Siehe Info: %%

Wenn Sie es aus einer Batch-Datei ausführen, können Sie es wie folgt schreiben sollen: http://ss64.com/nt/syntax-esc.html

+1

Gibt es einen Leitfaden, den ich für Batch-Skripting folgen kann? – kinkajou

+0

@kinkajou ich bearbeite meine Antwort, also, werfen Sie einen Blick auf den obigen Link;) – Hackoo

+2

Geben Sie "Hilfe" in einer Eingabeaufforderung ein. Dann entweder 'command /?' Oder 'help command'. Die Sache, die dir Kummer bereitet, ist in 'for /?'. Hier ist ein Cheat Anleitung zur Interpunktion in der Eingabeaufforderung http://StackOverflow.com/questions/31820569/trouble-with-Renaming-folders-and-sub-folders-using-batch. –