GRASS and windows console: Difference between revisions
m (+Category: FAQ) |
(added the selecting a shell section) |
||
Line 48: | Line 48: | ||
FOR %g IN (%VECTLIST%) DO v.buffer input=%g output=%g_buffer_200 distance=200 | FOR %g IN (%VECTLIST%) DO v.buffer input=%g output=%g_buffer_200 distance=200 | ||
</source> | |||
== selecting a shell == | |||
On windows, in the absence of the environmental variable GRASS_SH, the grass startup script selects the shell specified in environment variable ComSpec. This is typically cmd.sh. | |||
The default shell can be overridden by setting the environment variable GRASS_SH. Several shells are supported in the grass.py wrapper script ( AKA grass74.py for a version 7.4 install). These are ksh, csh, tcsh, bash, sh, zsh, cmd, and powershell. To make powershell the startup command shell set the environment variable with | |||
<source lang="bat"> | |||
GRASS_SH=%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe | |||
</source> | </source> | ||
Revision as of 00:07, 20 December 2018
This page shows extended examples how to run GRASS modules in the winGRASS windows console
Windows batch files in GRASS
In order to ease the workflow of analysis, several GRASS modules can be invoked at once by an batch file (*.bat) in the winGRASS windows console.
Python grass modules (e.g. v.db.addcolumn) have to be invoked by call in the batch-file.
@ECHO ON
g.region -p
v.in.region output=myreg
call v.db.addtable map=myreg
call v.db.addcolumn map=myreg columns="col1 double"
v.to.db map=myreg option=area columns=col1
Running batch files without starting up GRASS:
"%ProgramFiles?%\QGIS 2.18\bin\Grass72.bat" --exec MyScript.bat D:/myGrassData/MyLoc/MyMapset
g.list output as input for another GRASS module
Using g.list output as input variable for another module, e.g. to remove a list raster map.
FOR /F %c in ('g.list "type=raster" "pattern=*2" "mapset=user1" "separator=comma"') DO SET RASTER2REMOVE=%c
echo %RASTER2REMOVE%
b172,d172,it172,r172
g.remove type=raster name=%RASTER2REMOVE%
The following data base element files would be deleted:
raster/b172@user1
raster/d172@user1
raster/it172@user1
raster/r172@user1
WARNING: Nothing removed. You must use the force flag (-f) to actually
remove them. Exiting.
Using g.list output as input variable for another module, e.g. to loop through a list of vector maps and buffer them.
FOR /F %c IN ('g.list "type=vector" "separator=comma"') DO SET VECTLIST=%c
FOR %g IN (%VECTLIST%) DO v.buffer input=%g output=%g_buffer_200 distance=200
selecting a shell
On windows, in the absence of the environmental variable GRASS_SH, the grass startup script selects the shell specified in environment variable ComSpec. This is typically cmd.sh. The default shell can be overridden by setting the environment variable GRASS_SH. Several shells are supported in the grass.py wrapper script ( AKA grass74.py for a version 7.4 install). These are ksh, csh, tcsh, bash, sh, zsh, cmd, and powershell. To make powershell the startup command shell set the environment variable with
GRASS_SH=%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe