Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Help with writing and running scripts

Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Postby Mike » Fri Mar 12, 2010 9:57 am

Is there some configuration value that can be set in a script to avoid creating a backup file when "saveAs" is used?

That is, is there some variable that can be set that is equivalent to the configuration setting "File handling -> Backup -> No backup" radio button in the GUI?

I want to save a file with a new name, but not have a .bak or other file also created.

Thanks, Mike
Mike
Newbie
 
Posts: 5
Joined: Thu Mar 11, 2010 8:42 am

Re: Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Postby Mofi » Fri Mar 12, 2010 10:45 am

A backup file is created when using Save As only when the file already exists and the backup configuration is enabled. It does not matter how the Save As command is called - by the user, from within a script of from within a macro. There is no setting, property or parameter which can be used in scripts to control creation of the backup file when using Save As and file already exists.

You can configure a user tool containing the command line del "%f.bak" or del "%p%n.bak" and call that user tool from within the script after saving the file with a new name.
User avatar
Mofi
Grand Master
Grand Master
 
Posts: 4055
Joined: Thu Jul 29, 2004 11:00 pm
Location: Vienna

Re: Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Postby Mike » Fri Mar 12, 2010 11:35 am

Thanks for the information.

Perhaps this is my bigger problem: My Windows batch file and .js script file seem to be processing the input file twice.

Here's the command line in the batch file:
uedit32 /fni "C:\Projects\myfile.txt" /s="C:\Projects\editscript.js"

(By leaving off the ,e in the /s parameter I thought I could see better what is happening by not closing UltraEdit. The ,e doesn't seem to affect the script processing, anyway.)

myfile.txt is processed twice.

If the editscript.js file executes
Code: Select all
    UltraEdit.activeDocument.findReplace.replaceInAllOpen=false;
    UltraEdit.activeDocument.findReplace.replaceAll=true;
    UltraEdit.activeDocument.top();
    UltraEdit.activeDocument.write("A new line" + "\r\n");
...
    UltraEdit.activeDocument.save();
    UltraEdit.closeFile(UltraEdit.activeDocument.path,2);

then "A new line" is written twice at the beginning of the second instance of the file.

Why would myfile.txt be processed twice by UltraEdit?

What am I doing (or not doing) that causes this?

And what does the '2' argument to closeFile mean?

Thanks again for your trouble.

Sincerely, Mike
Mike
Newbie
 
Posts: 5
Joined: Thu Mar 11, 2010 8:42 am

Re: Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Postby Mofi » Fri Mar 12, 2010 12:07 pm

Mike wrote:And what does the '2' argument to closeFile mean?

Closing the file without save as documented in help of UltraEdit on page Scripting commands. I don't know why you have the inserted lined twice in your file, not with that code snippet.
User avatar
Mofi
Grand Master
Grand Master
 
Posts: 4055
Joined: Thu Jul 29, 2004 11:00 pm
Location: Vienna

Re: Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Postby Mike » Fri Mar 12, 2010 12:50 pm

Thank you for your patience. I'll remember to check the UltraEdit Help for script commands.

Here is a simplified set of files.

testfile.txt contains:
Code: Select all
This is the only line in the file.


double-write.bat contains:
Code: Select all
uedit32 /fni  "C:\Projects\testfile.txt"  /s="C:\Projects\double-write.js"


double-write.js contains as the only 2 lines:
Code: Select all
UltraEdit.activeDocument.top();
UltraEdit.activeDocument.write("A new line" + "\r\n");


Running the .bat file allows testfile.txt to remain open in UltraEdit with this content:
Code: Select all
A new line
A new line
This is the only line in the file.


It appears that the file is either edited twice, or the file is opened twice and edited both times.

No other instance of UltraEdit was running when the .bat file was executed.

Any ideas?

Maybe I should also say that I'm using version 15.20.0.1017 of UltraEdit.

I'll also point out that if "double-write.js" is added as a script within UltraEdit using the Scripting -> Scripts... menu item, the script only inserts "A new line" once in the file being edited, not twice.

Is there something about using a batch file, or /fni, or /s that causes double processing of the file?

Thanks again,
Mike
Mike
Newbie
 
Posts: 5
Joined: Thu Mar 11, 2010 8:42 am

Re: Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Postby jorrasdk » Sat Mar 13, 2010 7:29 am

Using the very latest version UE 16.00.0.1029 (on Win Vista Home Premium, SP2) I get the same result. The script is invoked twice when starting the script as in your example:

Code: Select all
C:\temp>uedit32 /fni temp.txt /s=temp.js

and when I add ,e UE crashes:

Code: Select all
C:\temp>uedit32 /fni temp.txt /s,e=temp.js

Tried adding UltraEdit.save(); to the script. Same result: crash - but no dump file "as usual" ?!.

Please report the problem to IDM support - click "mail us directly" at the top of this page to get the e-mail address.
User avatar
jorrasdk
Master
Master
 
Posts: 275
Joined: Mon Mar 19, 2007 11:00 pm
Location: Denmark

Re: Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Postby Mofi » Sun Mar 14, 2010 11:24 am

I tried the same with UE v16.00.0.1029.

With testfile.txt containing only the line This is the only line in the file.
and the script file double-write.js containing only the line UltraEdit.activeDocument.write("A new line\r\n");
and using the command line uedit32.exe /fni testfile.txt /s=double-write.js
the line is indeed inserted twice and I could see with Filemon that the script is opened/read (executed) twice.

But using command line uedit32.exe /fni testfile.txt /s,e=double-write.js produced the correct result. With the single line script I was asked to save the modified file containing only 1 inserted line and independent of my choice UltraEdit exited correct and the file content was correct depending on my choice. With command UltraEdit.save(); as additional command in the script the execution worked too. So no crash with my settings.

But the double execution of the script when not exiting UltraEdit is definitely a bug of UltraEdit. I could reproduce it with all versions of UltraEdit down to v14.00b+1. UE v13.20a+1 works correct. So I think this problem exists since v14.00 and nobody has detected this bug until now. I think the reason why it is only now detected is that most scripts executed via command line save and close the file(s) after modification and exit UltraEdit. Really strange.

Mike, please report this bug to IDM support by email or post if I should do it. Thanks.
User avatar
Mofi
Grand Master
Grand Master
 
Posts: 4055
Joined: Thu Jul 29, 2004 11:00 pm
Location: Vienna

Re: Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Postby Mike » Mon Mar 15, 2010 9:18 am

I never did get a crash from UltraEdit.

A little more testing after my previous posts indicated that the ",e" prevented the double editing.

Use of
Code: Select all
UltraEdit.saveAs(newFile);
UltraEdit.closeFile(newFile,2);

saved the file fine.

Use of closeFile without the ",e" on the command line allowed UltraEdit to stay open, but prevented the double editing (if I remember correctly). I had originally omitted the ",e" so that I could see the file edits during development without having to reopen the file.

Anyway, I've change the script to use ",e" and to save the file, and things are working well, now.

--> Mofi: Would you please submit the problem to IDM? With your past experience, they'll probably accept your report with more authority than mine.

Thanks again for all the help.

-- Mike
Mike
Newbie
 
Posts: 5
Joined: Thu Mar 11, 2010 8:42 am

Re: Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Postby Mofi » Mon Mar 15, 2010 1:24 pm

Mike wrote:Would you please submit the problem to IDM? With your past experience, they'll probably accept your report with more authority than mine.

I reported it. But my bug reports are not processed with a higher priority than reports from others. For some small problems I reported I'm waiting already years to be fixed. As long as not enough other users are reporting the same problem, I must wait for a fix, too.
User avatar
Mofi
Grand Master
Grand Master
 
Posts: 4055
Joined: Thu Jul 29, 2004 11:00 pm
Location: Vienna

Re: Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Postby Mofi » Tue Apr 13, 2010 1:15 am

The problem with executing a script twice on all opened files when running it from command line without using ,e and without closing all opened files from within the script was fixed with UE v16.00.0.1036.
User avatar
Mofi
Grand Master
Grand Master
 
Posts: 4055
Joined: Thu Jul 29, 2004 11:00 pm
Location: Vienna

Re: Script specified on command line executed twice (fixed in UE v16.00.0.1036)

Postby Mike » Tue Apr 13, 2010 8:01 am

Thanks for the notification.

I've just upgraded to version 16 and registered my copy.

-- Mike
Mike
Newbie
 
Posts: 5
Joined: Thu Mar 11, 2010 8:42 am


Return to Scripts