2017-07-04 4 views
0

Ich versuche, eine große Anzahl von GRIB-Dateien in NetCDF mit Grib-Tools (ich bin auf Windows 7) in einer Batch-Datei zu konvertieren.Iterating Grib-Tools über einen Ordner von GRIB-Dateien

Ich verwende diesen Code:

for /f %%f in (`dir /b O:\Praksa\incadata\2014\01\01`) 
    do 
    echo %%f grib_to_netcdf -D NC_FLOAT -o *.nc *.grb 

Aber wenn ich es laufen scheint nichts außer für CMD Öffnung passieren und wirklich schnell zu schließen.

Es gibt wahrscheinlich ein paar Syntaxfehler, die ich übersehen habe, aber meine Hauptfrage lautet: Kann ich Platzhalter (*) in GRIB-Tool-Anweisungen verwenden? Sind Leerzeichen in Verzeichnispfadnamen auch problematisch?

Danke!

+2

Ändern Sie die Backticks um den Befehl 'dir' in einfache Anführungszeichen' 'wie dokumentiert. Fügen Sie in der nächsten Zeile eine "Pause" -Anweisung hinzu, um das Fenster offen zu halten, oder klicken Sie vorzugsweise an der Eingabeaufforderung, und klicken Sie nicht auf einen Stapel. – Magoo

Antwort

0

Sie haben die Syntax falsch. cmd ist sehr wählerisch über die Syntax. Versuchen Sie folgendes:

@echo off 
for /f %%A in ('dir /b /a-d z:\*') do (
    echo %%~fA grib_to_netcdf -D NC_FLOAT -o %%~dpnA.nc %%~dpnA.grb 
) 

%%~fA gibt Ihnen die vollen qualifizierten Dateinamen, %~dpnA den D rive, P ath und N ame nur. Für diese Modifikatoren siehe for /?. dir /a-d schließt Ordnernamen aus. Siehe dir /? für weitere Informationen.