Jump to content

PEBakery


Joveler

Recommended Posts

Hi, I am back from a HDD failure, it took me 4 days to recover info from a 1 TB Seagate HDD, I guess the failure was on the disk board because there was no buffer available and also transfer speed from one disk to the other (both Sata III) was 3.5 MB/s, I used Seagate disk tools but no luck (it didn't pass any test) and also out of warranty (having only about 1440 total hours in use).    So a recommendation: Do not buy Seagate.

About that annoying messaje about UAC, I just disabled that check in main options script tab 3, (found it a few time after my post). Anyway thanks to Atari800XL for his replay about it.

UAC is permanently disabled on all my PC's, it is good for nothing all viruses and hackers bypass this useless feature, it is only good for do not let unexperience users damage their OS, not leting them do anything (MS people think the best safeward is: don't change anything, use it as it is).

About (CR)Apps, I do not use them.    To make a 10 install almost free of (CR)Apps and Telemetry I use WinLite10 and O&O ShutUp10, or unattend.xml specialize pass (from Abbody1406).

I would like to see your new version soon (hope the WOW64 script now works). Don't forget to give us a link to a compiled one when ready.

I made a thread on "news" in reboot.pro about PEBakery, and this is Nuno reply (Winbuilder developer and forum owner):

Quote

Looks like a good tool, in the end I think that language or correctness are the least of the worries. The focus should really be more about making simpler projects that work well for end-users.

 

I would be thumbsup to open a forum section here for the new tool and help with the visibility portion (e.g. newsletters) in case the author sees interest on that possibility.

So you are invited to open your own thread on reboot.pro too if you like the idea.

 

Best Regards

alacran

 

Edited by alacran
Typo
Link to comment
Share on other sites


12 hours ago, Homes32 said:

Sounds reasonable. I definetely agree with jaclaz that the old syntax is a weird mess resembling something you might get if Batch/cmd copulated with vb on top of an .ini file. its very inconsistent and hard to read and extend "functions/commands"

In the messy cases I would rather see time spent on creating viable replacements to take over where ugly hacks (ie MacroLibray/cmd/etc) has been shimmed in to work around bugs than creating compatibility with such monstrosities. We are talking more project script level here though as opposed to app scripts which generally use simple/basic commands that should be mostly drop in comparable in order to speed adaption.

 

Well, we do agree on the weird mess, but you are - without any actual need - offending my much beloved batch/cmd :w00t: :ph34r:  (and .ini files) that actually do work, by mixing them with the monstruosity of the Winbuilder "classic" sintax and its (crazy) extensions.

Batch - at least - has FOR loops, CALL and (much criticized by know-it-alls computer science guru's, BTW) GOTO statements Winbuilder .scripts resemble the worst possible kind of batch, the kind that total clueless people tend to write when they do they first tests, basically a macro recorder output (in the case of the Winbuilder is not of course incompetence by the good .script Authors, it is actual limits of the language).

And .ini files can at least be §@ç#ing READ by the naked eye (unlike most of the replacement devised by the same computer science gurus i.e. the omnipresent XML, that is largely unreadable and more often than not misused).

To do simple tasks all you need is simple tools, use Occam's Razor whenever possible.

The long term, final aim  of PEbakery should be to have a readable/writable simple language (which I understand being not trivial, and that will take a loooong time) while the next immediate step that of fully validating :) (by being able to re-build *all* existing projects) the actual interpreter of the "old" deprecated language.

Sounds like a very good plan. :thumbup

jaclaz

Link to comment
Share on other sites

Nice works, you made me want to connect :rolleyes:
I tried with Win10PESE with a successful build, correctly started in VMPlayer. 
I wish you a good continuation.

Have you something already planned to design the interface ?

 

Few things seen

In Win10PESE Main Configuration, Build model,

There are 4 choices: Normal,In RAM (boot.wim),_BuildModel_Choice_,True

The last 2 (section, progress) should not be displayed

Same for Boot Manager

 

I have a problem with the cache, I open PEBackery
If I modify a script, the modifications are not treated.
Caching should probably be done after clicking the 2 buttons: Build or Run Script 

 

It is a very good choice to have the log written in a SQLite database

Personally, I would  have removed the choice for logging macros (maybe comments also) in setting and add some checkbox choices in the log viewer.  Might be debatable. 

 

 

 

About the weird mess syntax , I partly agree, but I certainly would not have taken batch/cmd as an example.

cmd is really a much worse %~dp0,  %~n1, set string=%string:~0,3%,  set string=!string:~0,-1!, ... No problem with Goto if well used.

But hey, this discution does not allow any progress and it is probably too early. 

 

 

 

 

However, my 2 cents on syntax, the first thing would be the escape chars #$q, #$s... # alone or other special char should be enough.

A second would be the If, Begin, End, Else, Begin, End 

If  expression
 .....
Else
 ... 
EndIf

A 3rd could be to remove all the commas delimiter to be replaced by spaces  

but it is probably be like that to save time for the interpreter and development.

Just few ideas to ripen for latter.

Edited by Numb
Remove inappropriate comments
Link to comment
Share on other sites

Well, Numb, what I do is to use either just:

" ==============="

or something like:

" Later edit:
--------------"

Moreover, even acknowledging this editor does suck, because it hates BBCode, one can still obtain single spaces from <Shift>+<Enter> and double spaces by using just <Enter>... it's nor much, but this does allow some spartan formatting...
Good luck!

 

 

Link to comment
Share on other sites

On 12/8/2017 at 5:11 AM, jaclaz said:

Batch - at least - has FOR loops, CALL and (much criticized by know-it-alls computer science guru's, BTW) GOTO statements Winbuilder .scripts resemble the worst possible kind of batch, the kind that total clueless people tend to write when they do they first tests, basically a macro recorder output (in the case of the Winbuilder is not of course incompetence by the good .script Authors, it is actual limits of the language).

And .ini files can at least be §@ç#ing READ by the naked eye (unlike most of the replacement devised by the same computer science gurus i.e. the omnipresent XML, that is largely unreadable and more often than not misused).

lol. I thought the batch quip would get your attention :) Still think its a good example though. the syntax of wb borrows alot from batch. and its really very limited in what it can do, relying on external applicants to do even the simplest of tasks such as accepting user input (choice.com). I can't BASH it to much (hehehehe) though. I cut my teeth on it in my MSDOS days and one of my favorits back in the day was Bart's MODBOOT, wich actually helped spiral me into the world of boot disks, starting with UBCD, then UBCD4Win, and finally Winbuilder.

The .ini file is still by choice for writing and storing configurations. Even with its limitations its still the easy choice for maintaining human readable and configurable settings. Don't get me started on XML, and JSON, isn't much better, unless your goal is to pass chunks of data around.

Like the author said, its a big job to redo a scripting language and my main point wasn't to start a big debate on what is good/bad or BASH (hehehe I did it again :) ) winbuilders scripting language again as much as we all love it.....Rather I just want to make sure the focus is on making things better, not just making a fancy new car with a bigger motor for the same cockroach to drive around it. Naturally you first have to convince the cockroach that he should try the chevy vs the ford, and making the controls similar so he can just crawl in and start driving is a good way to get him to take a test drive.

As for the reboot offer? If the author wants, I say go for it. Why not. There are still good people there. There are good people at the Oven as well, however make sure you don't call the "command-set formally known as a .script " something other then the word "plugin" or some equally ridiculous offense or you risk being banned.

Link to comment
Share on other sites

4 hours ago, Homes32 said:

however make sure you don't call the "command-set formally known as a .script " something other then the word "plugin" or some equally ridiculous offense or you risk being banned.

That just made me laugh out loud! I know exactly what you mean - now using my third different name on reboot due to a certain someone banning me :)

Link to comment
Share on other sites

I realised how stupid I am to broach this still so sensitive subject.
By criticizing one place it suggests that I support the other, oh yes, of course. What an a***ole I am.
Sorry to wake up the old demons.
At the same time and to avoid losing face, it has the merit to be clear:
Better a place in peace like here maybe but especially Github for the development.
I deleted the concerned part in my previous post. That is none of my business, after all.

Edited by Numb
Link to comment
Share on other sites

I have a "Build stopped by error" if i change the shell loader in Win10PESE
The 3 lines "Visible,%ExtCustomW_TextLabel%,..." must to be deleted in 0-Shell Loader.script. ExtCustomW_TextLabel does not exist.

--------------------
PEBackery crash if we click on the log button without prior processing, on a fresh install for example. 
It crash if DB_BuildInfo table is empty in PEBakeryLog.db

Link to comment
Share on other sites

TestBuild 20171210

Download
https://drive.google.com/drive/folders/1TRiF0IoAuPg8DvH5nXnk7ngxEzrIVDNs

1. BugFix
- Stop button now terminates subprocess immediately.
- Support multiline code (line end with \)
- Fix DirCopy overwrite bug when used with wildcard compatibility flag.
- When multiline code has error, CodeParser now reports correct command.
- '\' will be added to FileBox's direcotry path.
- Left plugin tree will be refreshed after refresh of plugin.
- SectionName/HideProgress is properly recognized in ComboBox.

2. Feature Add
- If,ExistRegMulti implemented.
- Escape sequence of # (##) implemented.

Thanks to all who reported unknown bugs!

EDIT
Please redownload build 20171210, a critical bug resides in ShellExecute.

Edited by Joveler
Link to comment
Share on other sites

1. Multiline Support

If you use '\' at end of the line, next line will be used as additional argument.
Note) To treat '\' as a string (not multiline token), use doublequote ("\").

On 2017. 12. 4. at 1:48 PM, Paraglider said:

This line also passes the syntax check but fails at build time:

RegWrite,HKLM,0x3,Tmp_Software\Classes\CLSID\{LNINEVST-4YBM-7IPO-BXF1-KZLBS2X3NP70},0,\
44,44,28,F6,EF,7C,37,94,04,B5,BF,68,D8,94,BA,93,1C,55,26,62,4C,BC,70,\
FA,20,6A,86,68,6B,6D,05,57,1A,D3,3F,59,8E,8C,60,92,52,E1,28,62,3F,6C,18,71

Thanks to Paraglider, alacran and Atari800xl for reporting and fixing.

 

With multiline support added, WOW64 is working properly in MistyPE.
When testing MistyPE, do not forget to remove line 125 in create.iso.script like Atari800XL said.

On 2017. 12. 3. at 3:23 AM, Atari800XL said:

For Misty's create.iso.script, I believe line 125 should be deleted. In that case the "else" starts working, and only *one* of the two iso creation tools is used, instead of both (the second will overwrite the first anyway). Please correct me if I'm wrong.

 

2. SectionName/HideProgress is properly recognized in ComboBox

On 2017. 12. 9. at 3:00 AM, Numb said:

Few things seen

In Win10PESE Main Configuration, Build model,

There are 4 choices: Normal,In RAM (boot.wim),_BuildModel_Choice_,True

The last 2 (section, progress) should not be displayed

Same for Boot Manager

GitHub Issue Trakcer by Homes32 : https://github.com/ied206/PEBakery/issues/2
Thanks to Homes32 and Numb.

 

3. Plugin Refresh Button

On 2017. 12. 9. at 3:00 AM, Numb said:

I have a problem with the cache, I open PEBackery

If I modify a script, the modifications are not treated.
Caching should probably be done after clicking the 2 buttons: Build or Run Script

PEBakery loads whole .script files into memory at load time, for performance.
(File IO is the most biggest bottleneck of PEBakery.)

To make PEBakery recognize modification of plugin, use refresh button.
1) Big Refresh Button at up refreshes whole project.
2) Small Refresh Button at right refreshes one plugin.

 

4. Suggestion about logging

On 2017. 12. 9. at 3:00 AM, Numb said:

It is a very good choice to have the log written in a SQLite database

Personally, I would  have removed the choice for logging macros (maybe comments also) in setting and add some checkbox choices in the log viewer.  Might be debatable.

Checkbox choice to ignore macro / comment in log viewer should be nice!
Volume of logging impacts performance due to frequent file IO, so in my opinion "Log Macro" and "Log Comment" options should be kept.
Thanks for suggestion, Numb.

Link to comment
Share on other sites

On 2017. 12. 6. at 12:55 PM, sbaeder said:

I hope all of you are filing bug reports on github for him.  While he might not have too much time, others can fork and then make pull requests to fix some of these.  For one, the continuation of a line and concatenating them together before passing it down to the parser SHOULD be relatively straight forward.  For someone like me (although pretty busy right now), who love finding and fixing bugs more than we like writing new code, this could be a fun exercise.

Using github issue tracker keeps me organized about bugs.
So if you figured out the cause or details of bug, please create a ticket in issue tracker.
(You will be able to see even which source had caused the bugs!)

Link to comment
Share on other sites

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

if,not,ExistVar,HKLM,Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F},UpperFilters,begin
    RegWrite,HKLM,0x7,Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F},UpperFilters,hotcore3
end
else,begin
    If,not,EXISTREGMULTI,HKLM,Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F},UpperFilters,hotcore3,begin
        RegMulti,HKLM,Tmp_System\ControlSet001\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F},UpperFilters,APPEND,hotcore3
    end
end    

 

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)
[2/2] Cannot parse Section [SetupReg.AddReg] : Else must be used after If (else,begin)

Section Coverage : 100% (6/6)

 

 

Link to comment
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.
×
×
  • Create New...