Modify

Opened 21 months ago

Closed 19 months ago

Last modified 17 months ago

#3964 closed Feature Request (Works For Me)

Allow EnvGet to support whole strings like _WinAPI_ExpandEnvironmentStrings

Reported by: lwc Owned by:
Milestone: Component: AutoIt
Version: Severity: None
Keywords: environment Cc:

Description

While _WinAPI_ExpandEnvironmentStrings supports whole strings (but requires an include), EnvGet only allows to input a specific environment variable and even then without percents.

I don't presume to retroactively change that, but what about accepting a secondary optional parameter called $full? That is, Func EnvGet($envvariable, $full=False) whereas $full is optional and by default False.

But if $full is True then just do something like (only internally):

If $Full Then
  return Execute("'" & StringRegExpReplace($envvariable, "%(\w+)%",  "' & EnvGet('$1') & '" ) & "'")
EndIf

This will allow to support commands like ConsoleWrite(EnvGet("My temp variables are %temp% and %tmp%", true)).

Change History (7)

comment:1 Changed 21 months ago by lwc

Please change to the latest version (currently v3.3.16.1).

comment:2 Changed 21 months ago by TicketCleanup

  • Version 3.3.14.0 deleted

Automatic ticket cleanup.

comment:3 Changed 21 months ago by Jpm

I thing you just need to use the OPt("ExpandEnvStrings", 1)) which allow such expansion

Last edited 21 months ago by Jpm (previous) (diff)

comment:4 Changed 21 months ago by Jpm

  • Milestone set to 3.3.16.1

comment:5 Changed 21 months ago by TicketCleanup

  • Milestone 3.3.16.1 deleted

Automatic ticket cleanup.

comment:6 Changed 19 months ago by Jpm

  • Resolution set to Works For Me
  • Status changed from new to closed

As I said use Opt()

comment:7 Changed 17 months ago by lwc

Please don't close like that. In some cases one may want to preserve % in strings and only sometimes convert them. For example, when saving your script's settings you might want to save a parameter called $path as literally %appdata% instead of hardcoding it due to Opt(), so it will fail in another computer.

Why not just supporting the aforementioned $full variable?

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.