PostgreSQL连接的批处理文件浏览目录



我再次请求您帮助管理一个小批量脚本。正如在上一篇文章中所宣布的那样,我习惯于在linux上工作,自动化任务对我来说更为明显,但我今天必须在微软环境下工作。编写批处理文件绝对不是一件容易的事情。我可以用这个脚本连接到PostgreSQL数据库,并通过ogr2ogr加载数据。在那之前,没问题。目前,文件夹的路径在我的代码中是硬写的,但我希望可以通过windows资源管理器选择工作目录。此外,关于这个目录,我希望有可能同时处理子文件夹。

在这里,在我的*.bat代码下面:

TITLE Upload Shapefile Files to PostgreSQL
@echo off
cls
color 9
echo ******************************************************************************
echo *                   Upload Shapefile Files to PostgreSQL                     *
echo ******************************************************************************
set /P Host=Please enter your Server Host (default:localhost):
set /P Port=Please enter your PGSQL port (default:5432):
set /p Database=Please enter your PGSQL Database Name (default:postgres):
set /P Schema=Please enter your Edigeo Schema (default:public):
set /P User=Please enter your PGSQL username (default:postgres):
set /P Password=Please enter your PGSQL password (default:postgres):
For /F %%H In ("C:UsersstephjDesktopSHP*.shp") do ogr2ogr -overwrite -t_srs EPSG:2154 -s_srs EPSG:2154 -f "PostgreSQL" PG:"host=%Host% port=%Port% user=%User% password=%Password% dbname=%Database%" -lco schema=%Schema%
pause

提前感谢您的时间和帮助。

好的,这里有一种方法。这将只是通过回显文件来演示,您需要修改它以遵循您的命令结构:

注意这是一个批处理/PowerShell混合脚本。它需要使用批处理文件扩展名保存,最好是.cmd:

@echo off
set "pshell="(new-object -COM 'Shell.Application').BrowseForFolder(0,'Select Folder',0,0).self.path""
for /f "delims=" %%a in ('powershell %pshell%') do set "workdir=%%a"
for /r "%workdir%" %%i in (*.shp) do echo "%%~i"

最新更新