J'essaie de générer une commande dynamique pour le datastage en utilisant un fichier bat, mais je pense qu'il me manque quelque chose.Génération de commandes dynamiques dans le lot
La commande "variation" est prise en lisant un fichier .txt.
Voici le code:
SET PATH_Classic=C:\IBM\InformationServer\Clients\Classic
CD %PATH_Classic%
SET /P INV_ID=Type the invocation ID :
ECHO %INV_ID%
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%G in (%1) do (
SET FLOW=%%G
SET JOBNAME=****_****_**_***_%FLOW%_***_***.%INV_ID%
SET STAGENAME=ReadFile_%FLOW%
dsjob -domain NONE -user ******* -password ******* -server ****** -linkinfo ****** %JOBNAME% %STAGENAME% read_file_IN
)
pause
je devais garder une information privée (*** choses), mais la logique ne change pas.
Le problème semble être que les variables FLOW, JOBNAME & STAGENAME ne sont pas définies.
Vous avez besoin (http://ss64.com/nt/delayedexpansion.html) [expansion retardée]. – aschipfl
'setLocal EnableDelayedExpansion' n'est pas suffisant? – Hammond95
Non, cela le permet juste; vous devez également l'utiliser, ce qui signifie étendre les variables comme '! FLOW!' plutôt que '% FLOW%' ... – aschipfl