/ / Comment passer des arguments dans un fichier bat et les utiliser comme paramètres pour un exécutable - windows, git, powershell, batch-file

Comment passer des arguments dans un fichier bat et les utiliser comme paramètres pour un exécutable - windows, git, powershell, batch-file

Nous avons donc ce générateur DataModel qui génère des apimodels basés sur les tables existantes dans notre base de données, le problème est que la commande depuis la ligne de commande est assez mouvementée.

Exemple:

&".BinariesToolsGeneralSAHL.Tools.TestApiModelGenerator.exe" @("-s", "devo03", "-d", "2am", "-u", "eworkadmin2", "-p", "W0rdpass", "-n", "dbo", "-o", ‘D:gitdev-apollo", "-i", "Account,Offer")

J'essaie d'écrire un fichier chauve-souris qui prend des arguments représentant:

  • dbServer
  • schémas
  • les tables
  • référentiel local

Je ne connais que les bases absolues de l'écriture de fichiers chauve-souris. J'ai modifié un fichier bat existant qui génère des classes cs pour chaque modèle spécifié dans la ligne de commande.

Toute sorte de départ serait la bienvenue. Je travaille à partir du fichier script / bat ci-dessous:

**@echo off
IF [%1] == [] (goto error)
IF [%2] == [] (goto error)
IF "%1" == "help" (goto help)
IF NOT [%3] == [] (goto schemas)
%~dp0BuildToolsInvoke-Buildib.cmd -File %~dp0BuildParallelCodeGeneration.build.ps1 -Task DataModelGeneration -dbSourceServer %1 -properties @{ "database" = "%2"}
exit
:schemas
%~dp0BuildToolsInvoke-Buildib.cmd -File %~dp0BuildParallelCodeGeneration.build.ps1 -Task DataModelGeneration -dbSourceServer %1 -properties @{ "database" = "%2"; "schemas" = "%3" }
exit
:error
echo.
%Windir%System32WindowsPowerShellv1.0Powershell.exe write-host -foregroundcolor Red "Please provide mandatory parameters [dbSourceServer] and [database]"
:help
echo.
echo Task
echo ----
echo.
echo help           -- Displays this help menu
echo.
echo GenerateDataModels.bat [dbSourceServer] [database] [schemas]
echo ------------------------------------------------------------
echo.
echo [dbSourceServer]   -- mandatory    - name of the server the database is hosted on
echo [database]     -- mandatory    - name of database
echo [schemas]      -- optional - an inverted-comma-bound, comma delimited list of schemas to include
echo.
echo (e.g. GenerateDataModels.bat deva03 2am """dbo,debtcounselling""")
echo.
exit**

Je suis arrivé jusqu'ici

  @echo off

IF [%1] == [] (goto error) --database
IF [%2] == [] (goto error) --engine
IF [%3] == [] (goto error) --schema
IF [%4] == [] (goto error) --tables
IF [%5] == [] (goto error) --repository
IF "%1" == "help" (goto help)
IF NOT [%3] == [] (goto schemas)

start &".BinariesToolsGeneralSAHL.Tools.TestApiModelGenerator.exe" @("-s", %1, "-d", %2, "-u", "eworkadmin2", "-p", "W0rdpass", "-n", "dbo", "-o", %5, "-i", "%4")
exit

:error
echo.
%Windir%System32WindowsPowerShellv1.0Powershell.exe write-host -foregroundcolor Red "Please provide mandatory parameters [dbSourceServer] and [database]"


:help
echo.
echo Task
echo ----
echo.
echo help           -- Displays this help menu
echo.
echo GenerateTestApiModels.bat [dbSourceServer] [database] [schemas] [tables] [repository]
echo ------------------------------------------------------------
echo.
echo [dbSourceServer]   -- mandatory    - name of the server the database is hosted on
echo [database]     -- mandatory    - name of database
echo [schemas]      -- mandatory    - an inverted-comma-bound, comma delimited list of schemas to include
echo [tables] -- mandatory - comma delimited list of table names
echo [repository] -- mandatory (Your local git repository)
echo (e.g. GenerateTestApiModels.bat deva03 2am """dbo,debtcounselling,account""" I:apollo)
echo.
exit

Réponses:

1 pour la réponse № 1

J'avais besoin de supprimer les étapes précédentes qui tentaient de créer d'autres solutions en premier. C'était le résultat final:

@echo off

IF [%1] == [] (goto error)
IF "%1" == "help" (goto help)
IF [%2] == [] (goto error)
IF [%3] == [] (goto error)
IF [%4] == [] (goto error)

.BinariesToolsGeneralSAHL.Tools.TestApiModelGenerator.exe -s %1 -d %2 -u eworkadmin2 -p W0rdpass -n %3 -o %cd% -i %4
exit

:error
echo.
%Windir%System32WindowsPowerShellv1.0Powershell.exe write-host -foregroundcolor Red "Please provide mandatory parameters [dbSourceServer],[database],[schemas],[tables]"


:help
echo.
echo Task
echo ----
echo.
echo help           -- Displays this help menu
echo.
echo GenerateTestApiModels.bat [dbSourceServer] [database] [schemas] [tables]
echo ------------------------------------------------------------
echo.
echo [dbSourceServer]   -- mandatory    - name of the server the database is hosted on
echo [database]     -- mandatory    - name of database
echo [schemas]      -- mandatory    - an inverted-comma-bound, comma delimited list of schemas to include
echo.[tables] -- mandatory - comma delimited list of table names
echo (e.g. GenerateTestApiModels.bat deva03 2am """dbo,debtcounselling,account""" I:apollo)
echo.
exit