Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 



Joveler

PEBakery

Recommended Posts


6 hours ago, Paraglider said:

I still cannot get existregmulti to work. I get a script error from this:

2 syntax error detected at [Win10PESE\Addons.PG\HDM15Pro\hdm15pro.link]

[1/2] Wrong CodeType [Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}], Only alphabet, number and underscore can be used as CodeType (if,not,ExistVar,HKLM,Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F},UpperFilters,begin)

Does If,ExistVar command have only one argument?
Please change "If,Not,ExistVar" to "If,Not,ExistRegKey" and see if syntax error still occurs.

Edited by Joveler

Share this post


Link to post
Share on other sites

TestBuild 20171213 released.

Download

Changelog
- Halt command kills subprocess immediately.
- If WorkDir is specified in ShellExecute, WorkDir is added to PATH temporary.
- Set command supports add/remove of macro command.
- AddVariables adds local macro.
- Added SetMacro command to manage macro only.
- In HTML log export, write [ and ] near LogState.
- System,RefreshInterface will block until refresh is done.
- Change of interface section will be updated by System,RefreshInterface.
- Added compatibility option for FileRename/DirMove to move file and directory.
- Added PathMove, a command works like FileRename + DirMove.
- Variable and Macro's Name is restricted to regex "[a-zA-Z0-9_\(\)\.]+".
- Fix TXTReplace to treat case insensitive string.

Share this post


Link to post
Share on other sites

Seems like syntax checker does not report the actual error any more when a script  is referenced through a link file:

1 syntax error detected at [Win10PESE\Addons.PG\Pwdsafe\PasswordSafe.link]

[1/1] Syntax error ()

Section Coverage : 100% (6/6)

 

Share this post


Link to post
Share on other sites

I have found a number of incompatibilities so far:

In strings winbuilder supports "" as a double quote escape character as well as #$q

Winbuilder does not require a description= line in main

Winbuilder supports a not prefix e.g. NotExistDir as well as Not,ExistDir. This seems to be supported for all Exist variants.

 

Share this post


Link to post
Share on other sites

Hello paraglider, thanks for reporting. I looked through your reports.

 

1 hour ago, Paraglider said:

Seems like syntax checker does not report the actual error any more when a script  is referenced through a link file:

1 syntax error detected at [Win10PESE\Addons.PG\Pwdsafe\PasswordSafe.link]

[1/1] Syntax error ()

Section Coverage : 100% (6/6)

I cannot reproduce it, can you provide the sample?

 

1 hour ago, Paraglider said:

In strings winbuilder supports "" as a double quote escape character as well as #$q

Winbuilder does not require a description= line in main

Fixed, they will work in next release.

 

1 hour ago, Paraglider said:

Winbuilder supports a not prefix e.g. NotExistDir as well as Not,ExistDir. This seems to be supported for all Exist variants.

PEBakery supports to use branch condtion NotExist* when Allow Deprecated Legacy Branch Condition compatibility option is on. (It is turned on by default.)
PEBakery limits the use of Not in legacy branch condtions, however. (No If,Not,NotExistDir,... form)

// Part of PEBakery's CodeParser code

if (AllowLegacyBranchCondition)
{ // Deprecated BranchConditions
	if (condStr.Equals("NotExistFile", StringComparison.OrdinalIgnoreCase))
	{
		if (notFlag)
			throw new InvalidCommandException("Branch condition [Not] cannot be duplicated", rawCode);
		cond = new BranchCondition(BranchConditionType.ExistFile, true, args[cIdx + 1]);
		embIdx = cIdx + 2;
	}
	else if (condStr.Equals("NotExistDir", StringComparison.OrdinalIgnoreCase))
	{
		if (notFlag)
			throw new InvalidCommandException("Branch condition [Not] cannot be duplicated", rawCode);
		cond = new BranchCondition(BranchConditionType.ExistDir, true, args[cIdx + 1]);
		embIdx = cIdx + 2;
	}
...

Did this behavior not work properly?

Share this post


Link to post
Share on other sites

This:

If,NotExistFile,"%SourceFolder%\testdisk_win.exe",Run,%ScriptFile%,Halt

reports this error

[1/1] Wrong branch condition [NotExistFile] (If,NotExistFile,"%SourceFolder%\testdisk_win.exe",Run,%ScriptFile%,Halt)

I have all compatability optons checked.

 

 

Share this post


Link to post
Share on other sites

Another compatibility issue with RegWrite:

RegWrite,HKLM,0x7,"Tmp_Software\Safer Networking Limited\Spybot - Search & Destroy 2","Download Directories"

reports this error:

[1/2] Invalid RegWrite Syntax (RegWrite,HKLM,0x7,"Tmp_Software\Safer Networking Limited\Spybot - Search & Destroy 2","Download Directories")

If you export the key with regedit I see:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Safer Networking Limited\Spybot - Search & Destroy 2]
"Download Directories"=hex(7):00

Or in unicode format:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Safer Networking Limited\Spybot - Search & Destroy 2]
"Download Directories"=hex(7):00,00

 

Share this post


Link to post
Share on other sites
1 hour ago, Paraglider said:

This:

If,NotExistFile,"%SourceFolder%\testdisk_win.exe",Run,%ScriptFile%,Halt

reports this error

[1/1] Wrong branch condition [NotExistFile] (If,NotExistFile,"%SourceFolder%\testdisk_win.exe",Run,%ScriptFile%,Halt)

I have all compatability optons checked.

Thanks to you, I found a bug in CodeParser disabling legacy branch conditions. Will be fixed in next release.

1 hour ago, Paraglider said:

Another compatibility issue with RegWrite:

RegWrite,HKLM,0x7,"Tmp_Software\Safer Networking Limited\Spybot - Search & Destroy 2","Download Directories"

reports this error:

[1/2] Invalid RegWrite Syntax (RegWrite,HKLM,0x7,"Tmp_Software\Safer Networking Limited\Spybot - Search & Destroy 2","Download Directories")

Fixed PEBakery to create empty REG_MULTI_SZ key to regsitry with 4-argument 0x7 RegWrite.

1 hour ago, Paraglider said:

It would be nice if the syntax check log included the line number of the line in the script.

I will do it when time permits.

  • Like 1

Share this post


Link to post
Share on other sites

Build 20171216

 

Changelog
- Fix TXTDelLineOp optimization bug
- Fix NullReferenceException in System,RefreshInterface
- Disable System,SaveLog when logger is turned off
- Recognize "PathSetting=False" in "script.project - [Main]" and disable path setting.
- Prevent possible UI exceptions.
- "[Main] - Description=" line is no longer mandatory in plugin.
- CodeParser.GetNextArgument will not slice argument with "".
- Support legacy branch condition when compatibility option is set.
- Support 4-argument 0x7 RegWrite.
- Do not touch escape characters when setting variables.
- Ignore the plugin itself in "[Main] - Disable" directive.
  It fixes a bug VMWare.script is uncheckable.
- TXTReplace will be optimized to TXTReplaceOp if condition is met.
- IniReadOp will set varible to empty string when key is not found.
- Do not escape variables imported from interface.
- Pressing Update button of LogWindow while building no longer crashes program.
- Log stdout and stderr in ShellExecute,Hide.
- Implement ShellExecute,Min.
- Implement GetParam, PackParam.
- Implement "#a" to track section parameter count.
- Allow "-" in variable name, for compatibility with Gena_Meal.
- Fix IOException in CopyOrExpand.
- Fix UIParser to recognize tooltip in TextFile

1. Update to .Net Framework 4.7.1
PEBakery uses several libraries.
Update of some library caused PEBakery to malfunction (problem with .Net Standard 2.0), so I had to update .Net Framework to 4.7.1.

2. [New] ShellExecute
ShellExecute,Min added to execute programs minimized.
ShellExecute,Hide will show and log stdout and stderr.

3. [New] parameter count token #a
To deprecate PackParam, #a token is added.
When used in command, #a denotes section parameter's number.

  • Like 1

Share this post


Link to post
Share on other sites

Found a problem in MistyPE.

If the Options 2 tab is selected in the main project script (with settings for Build Method, Keyboard Layout, etc) then the build fails. Clicking on the HELP button for Option 7] Build Method also fails.  

The error appears to be due to the content of the message in the [HELP.7] section of the script. I can't actually see what code in the Message is causing the issue and am about to leave for work. Not sure if it's my code or a PEBakery issue.

Regards,

Misty

Share this post


Link to post
Share on other sites

The [HELP.7] section seems to have extra double quote inside the line (col. 467, "INJECT"). Removing these seems to fix the problem (the correct way is replacing them with #$q I guess...)

Just another case of PEBakery's stricter double quote rules...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×