Guardar el valor del parámetro de la línea de comandos en un archivo de texto en Inno Setup.
Además de las tareas de instalación habituales, necesito obtener el valor del parámetro de la línea de comandos (por ejemplo, /MyParam=XXX
) y luego copiar el valor del parámetro (XXX
) en un archivo txt en la carpeta de la aplicación. Hasta ahora he probado el siguiente código, pero no sé cómo pasar correctamente el valor del parámetro al procedimiento del código.
[Files]
Source: "MyApp.exe"; DestDir: "{app}"; Flags: ignoreversion overwritereadonly; \
AfterInstall: SaveParam('{param:MyParam}');
[Code]
procedure SaveParam(S: String);
begin
if S<>'' then
begin
SaveStringToFile('{app}\file.txt', 'Value=' + S, False);
end;
end;
En resumen, cuando ejecuto el instalador con MyApp.exe /MyParam=XXX
espero que el texto Value=XXX
se agregue al archivo file.txt
. Cualquier ayuda es muy apreciada, ¡gracias!
davy.ai
Para pasar correctamente el valor del parámetro al procedimiento de código, puede actualizar el parámetro
AfterInstall
en la sección[Files]
de la siguiente manera:En el parámetro
AfterInstall
, puede usar{param:MyParam}
para obtener el valor del parámetro de línea de comandos llamadoMyParam
. También puede especificar un valor predeterminado si el parámetro no está definido, utilizando el carácter de tubería (|
) de la siguiente manera:{param:MyParam|ValorParamPredeterminado}
.En el procedimiento
SaveParam
, puede utilizar la funciónExpandConstant
para obtener el valor real de la constante{app}
. Luego puede utilizar la funciónSaveStringToFile
para guardar el textoValue=XXX
en el archivofile.txt
en la carpeta de la aplicación.Tenga en cuenta que si el parámetro
MyParam
no está definido en la línea de comandos al ejecutar el instalador, el procedimientoSaveParam
se llamará con una cadena vacía como valor del parámetro. Es posible que desee agregar alguna validación o manejo del valor predeterminado en su código.