Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

New 4UTILS

May
12,845
164
I made some changes to 4UTILS (32-bit only, so far). Comments and bug reports are welcome as always.

ftp://lucky.syr.edu/4plugins/4utils.zip

1. removed @SHPATH[] because TCC's @SHFOLDER[] does the same thing ... except for the profiles directory ... so (see 2)

2. added _PROFILES = profiles directory

3. removed possibly troublesome routines from ShutdownPlugin()

4. added @DTPLUS[] to modify datetimes:

@DTPLUS[YYYYMMDDHHMMSS +|- [[[DD]HH]MM]SS] = new datetime

5. added _TCCPATH = TCC's home directory

6. CDIN, CDNEXT, CDPREV, _CDIN, _CDNEXT, _CDPREV are relatively new but have been discussed here

7. added _INETNAME = DNS lookup of routable IP

8. added _INETADDR = internet (routable) IP

9. added "UHELP ?" to give exports on one page

10. added a "D" option to @DTMARK. It doesn't work like the others. The canonical second marks are multiples of 1,2,3,4,5,6,10,12,15,20,30,60 seconds after the minute. Similarly for the minute marks (relative to the beginning of the hour). The hour marks are multiples of 1,2,3,4,6,8,12,24 hours after midnight. (All those haven't changed.) The new "D" (D=1,2,...) option simply gives days from the beginning of today.
 
I made some changes to 4UTILS (32-bit only, so far). Comments and bug reports are welcome as always.

7. added _INETNAME = DNS lookup of routable IP

8. added _INETADDR = internet (routable) IP

I got these errors:
Code:
C:\work> echo %_inetaddr
TCC: (Sys) Invalid access to memory location.
 "_INETADDR"
ECHO is OFF

C:\work> echo %_inetname
TCC: (Sys) Invalid access to memory location.
 "_INETNAME"
ECHO is OFF

C:\work>
Maybe it's because my computer is behind TWO firewalls and the plugin can't figure out the routable address, but it shouldn't fail like that. It would be better to give an %_? error code.

Thanks for the update, though. I will make good use of the _PROFILES and _TCCPATH items.
 
Thanks, I'll check on it. Are you saying the computer doesn't have a public IP,
or the firewalls prevent the DNS lookup. [I really doubt DNS is prevented since
all things internet depend on it!]

On Mon, 31 May 2010 13:31:12 -0400, dcantor <> wrote:

|Code:
|---------
|C:\work> echo %_inetaddr
|TCC: (Sys) Invalid access to memory location.
| "_INETADDR"
|ECHO is OFF
|
|C:\work> echo %_inetname
|TCC: (Sys) Invalid access to memory location.
| "_INETNAME"
|ECHO is OFF
|
|C:\work>
|---------
|Maybe it's because my computer is behind TWO firewalls and the plugin can't figure out the routable address, but it shouldn't fail like that. It would be better to give an %_? error code.
--
- Vince
 
Thanks, I'll check on it. Are you saying the computer doesn't have a public IP,
or the firewalls prevent the DNS lookup. [I really doubt DNS is prevented since
all things internet depend on it!]

The computer is connected to a router/firewall and has an address in the
nonroutable 10.xx.xx.xx range. That router is connected to ANOTHER router and has an address in the nonroutable 192.168.xx.xx range. That second (outer) router, in turn, has an actual internet address in the 66.232.xx.xx range.

Thanks for looking into it.
 
Unrelated to my bug report note, here are some more items:

In 4UTILS.TXT :

1. The text for @DTMARK ought to include the new D=, and ought to give the specifications for what values can be used.

2. Suggestion @DTPLUS allow omission of the base date-time so that @DTPLUS[+3] means the same as @DTPLUS[%_datetime% +3]

3. A short paragraph on how global variables work would help. What's their scope?

4. What the heck does UNTYPEX do?

5. What is /R(everse) on UNSETEX ?

6. _UTC should say "System date and time in UTC" rather than just system time. System time is not wrong, but it's confusing.

Regards,
 
On Mon, 31 May 2010 14:36:16 -0400, dcantor <> wrote:

|The computer is connected to a router/firewall and has an address in the
|nonroutable 10.xx.xx.xx range. That router is connected to ANOTHER router and has an address in the nonroutable 192.168.xx.xx range. That second (outer) router, in turn, has an actual internet address in the 66.232.xx.xx range.

Please get ftp://lucky.syr.edu/4plugins/debug/4utils.dll and give it a try.

I put a few "OK" messages (OK1, OK2, ...) in it. I'd like to see where it
fails.

You can email me at [email protected] (an email address which will go
away soon).
--
- Vince
 
On Mon, 31 May 2010 14:49:43 -0400, dcantor <> wrote:

|Unrelated to my bug report note, here are some more items:
|
|In 4UTILS.TXT :
|
|1. The text for @DTMARK ought to include the new D=, and ought to give the specifications for what values can be used.

Done (first part). D can be any positive integer. That's a lot of text (second
part). I'll think about it. Users will figure it out. :-)

|2. Suggestion @DTPLUS allow omission of the base date-time so that @DTPLUS[+3] means the same as @DTPLUS[%_datetime% +3]

@DTPLUS[] is really slick as it stands and that'd complicate it quite a bit.
Again, I'll think about it.

|3. A short paragraph on how global variables work would help. What's their scope?

Again, more test! They go in HKCU\JPGlobal and are available to any instance of
4utils.dll.

|4. What the heck does UNTYPEX do?

If you TYPEX file1 > file2, UNTYPEX file2 file3 should give you a copy of file1.
Actually I should UNTYPEX to the console and let the user redirect if desired
(agree?). ... I'll think about it.

|5. What is /R(everse) on UNSETEX ?

Unsets the ones **not** specified (dangerous?) Actually, UNSETEX, as it stands,
uses wildcards (not regular expressions, as claimed). I should fix that or get
rid of UNSETEX (since UNSET does that). What do you think?

|6. _UTC should say "System date and time in UTC" rather than just system time. System time is not wrong, but it's confusing.

Done.

--
- Vince
 
On Mon, 31 May 2010 14:49:43 -0400, dcantor <> wrote:

|Unrelated to my bug report note, here are some more items:
|
|In 4UTILS.TXT :
|
|1. The text for @DTMARK ought to include the new D=, and ought to give the specifications for what values can be used.

Done (first part). D can be any positive integer. That's a lot of text (second
part). I'll think about it. Users will figure it out. :-)

|2. Suggestion @DTPLUS allow omission of the base date-time so that @DTPLUS[+3] means the same as @DTPLUS[%_datetime% +3]

@DTPLUS[] is really slick as it stands and that'd complicate it quite a bit.
Again, I'll think about it.

|3. A short paragraph on how global variables work would help. What's their scope?

Again, more test! They go in HKCU\JPGlobal and are available to any instance of
4utils.dll.

|4. What the heck does UNTYPEX do?

If you TYPEX file1 > file2, UNTYPEX file2 file3 should give you a copy of file1.
Actually I should UNTYPEX to the console and let the user redirect if desired
(agree?). ... I'll think about it.

|5. What is /R(everse) on UNSETEX ?

Unsets the ones **not** specified (dangerous?) Actually, UNSETEX, as it stands,
uses wildcards (not regular expressions, as claimed). I should fix that or get
rid of UNSETEX (since UNSET does that). What do you think?

|6. _UTC should say "System date and time in UTC" rather than just system time. System time is not wrong, but it's confusing.

Done.

--
- Vince

I agree with everything you said. Your explanations help, and now *I* know. Thanks for the fixes and the illumination. Instead of UNSETEX /R(everse), how about UNSETEX /EXCEPT ?

[Edit by original author: I figured out how to eliminate the extraneous text and link that was here before. DAC.]
 
On Mon, 31 May 2010 15:44:42 -0400, dcantor <> wrote:

|I agree with everything you said. Your explanations help, and now *I* know. Thanks for the fixes and the illumination. Instead of UNSETEX /R(everse), how about UNSETEX /EXCEPT ?

I added a bit more to the help for @DTMARK[] and GSET

I simply removed UNSETEX because I didn't feel like struggling with regular
expressions (and I figured there's not a whole lot of need to delete environment
variables regexes ... considering that UNSET uses wildcards and multiple
specifications, something I don't think I realized when I first wrote UNSETEX).

Note @DTPLUS[] with a delta of "3" (your example) is a marginal case and only
works by coincidence. "333" (OTOH) would give 33 minutes 3 seconds! Best to
stick to [[[DD]HH]MM]SS.

What about _INETADDR and _INETNAME?

New one in place: ftp://lucky.syr.edu/4plugins/4utils.zip
--
- Vince
 
TYPEX and UNTYPEX

Would anyone miss TYPEX and UNTYPEX if I removed them from 4UTILS? TCC's TYPE /X serves the purpose of TYPEX and I can't think of much of a reason to UNTYPEX (unless you're hex editing, in which case there are much better tools).
 
On Mon, May 31, 2010 at 2:09 PM, vefatica <> wrote:


>
> What about _INETADDR and _INETNAME?
>
>
D:\>ver/r

TCC 11.00.48 Windows Vista [Version 6.0.6002]
TCC Build 48 Windows Vista Build 6002 Service Pack 2

D:\>echo %_inetaddr
TCC: (Sys) The file name is too long.
ECHO is OFF

D:\>echo %_inetname
TCC: (Sys) The file name is too long.
TCC: (Sys) DNS name does not exist.
ECHO is OFF


--
Jim Cook
2010 Sundays: 4/4, 6/6, 8/8, 10/10, 12/12 and 5/9, 9/5, 7/11, 11/7.
Next year they're Monday.
 
TYPEX and UNTYPEX

----- Original Message -----
From: "vefatica" <>
To: <[email protected]>
Sent: 2010. May 31., Monday 21.28
Subject: RE: [Support-t-2010] TYPEX and UNTYPEX


| Would anyone miss TYPEX and UNTYPEX if I removed them from 4UTILS? TCC's
TYPE /X serves the purpose of TYPEX and I can't think of much of a reason to
UNTYPEX (unless you're hex editing, in which case there are much better
tools).

Go ahead and remove them.
--
Steve
 
On Mon, 31 May 2010 22:26:18 -0400, Jim Cook <> wrote:

|TCC 11.00.48 Windows Vista [Version 6.0.6002]
|TCC Build 48 Windows Vista Build 6002 Service Pack 2
|
|D:\>echo %_inetaddr
|TCC: (Sys) The file name is too long.
|ECHO is OFF
|
|D:\>echo %_inetname
|TCC: (Sys) The file name is too long.
|TCC: (Sys) DNS name does not exist.
|ECHO is OFF

The DNS error happened because I tried to lookup 127.0.0.1. I thought I fixed
that. I don't know about the other error. Do you have any ideas what name
might be too long? (The message is generic and probably doesn't really refer to
a file.)
--
- Vince
 
I used procmon and filtered based on TCC/pid and removed SUCCESS results.
Does this help?

∩╗â”"Sequence","Time of Day","Process
Name","PID","Operation","Path","Result","Detail"
"n/a","20:30:18.3684869","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3686495","TCC.EXE","4192","RegOpenKey","HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{8D2BAF2E-230C-4663-B577-0ACFB3A7C306}","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3689047","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3690245","TCC.EXE","4192","RegOpenKey","HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{5D5ADB34-1FE9-448C-AD53-6978D1944A24}","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3691009","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{5D5ADB34-1FE9-448C-AD53-6978D1944A24}\DhcpDomain","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3695136","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3696028","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3a539854-6a70-11db-887c-806e6f6e6963}\EnableDhcp","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3696335","TCC.EXE","4192","RegOpenKey","HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3A539854-6A70-11DB-887C-806E6F6E6963}","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3696795","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3a539854-6a70-11db-887c-806e6f6e6963}\RegistrationEnabled","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3696891","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3a539854-6a70-11db-887c-806e6f6e6963}\RegisterAdapterName","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3696980","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3a539854-6a70-11db-887c-806e6f6e6963}\Domain","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3697067","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3a539854-6a70-11db-887c-806e6f6e6963}\DhcpDomain","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3699615","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3703863","TCC.EXE","4192","RegOpenKey","HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{B143158B-04D0-47D0-BF42-1661A64EE2D5}","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3712335","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3713667","TCC.EXE","4192","RegOpenKey","HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{8D2BAF2E-230C-4663-B577-0ACFB3A7C306}","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3716495","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3717878","TCC.EXE","4192","RegOpenKey","HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{5D5ADB34-1FE9-448C-AD53-6978D1944A24}","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3718589","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{5D5ADB34-1FE9-448C-AD53-6978D1944A24}\DhcpDomain","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3723051","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3723959","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3a539854-6a70-11db-887c-806e6f6e6963}\EnableDhcp","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3724271","TCC.EXE","4192","RegOpenKey","HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3A539854-6A70-11DB-887C-806E6F6E6963}","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3724730","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3a539854-6a70-11db-887c-806e6f6e6963}\RegistrationEnabled","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3724825","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3a539854-6a70-11db-887c-806e6f6e6963}\RegisterAdapterName","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3724904","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3a539854-6a70-11db-887c-806e6f6e6963}\Domain","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3724987","TCC.EXE","4192","RegQueryValue","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{3a539854-6a70-11db-887c-806e6f6e6963}\DhcpDomain","NAME
NOT FOUND","Length: 144"
"n/a","20:30:18.3727400","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3730109","TCC.EXE","4192","RegOpenKey","HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{B143158B-04D0-47D0-BF42-1661A64EE2D5}","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3733139","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3733827","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{500fd969-7d88-41ab-922d-2b811f4a05cc}","NAME
NOT FOUND","Desired Access: Query Value"
"n/a","20:30:18.3734542","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3735186","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{4a6c5ad4-5576-4f4d-8c45-caa8d7cd3978}","NAME
NOT FOUND","Desired Access: Query Value"
"n/a","20:30:18.3737749","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3738567","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{c0a90954-6942-401a-8976-3e33a0705442}","NAME
NOT FOUND","Desired Access: Query Value"
"n/a","20:30:18.3739720","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces","REPARSE","Desired
Access: Read"
"n/a","20:30:18.3740388","TCC.EXE","4192","RegOpenKey","HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{ede2fda3-d2a8-4932-bf76-c12171c5e7c0}","NAME
NOT FOUND","Desired Access: Query Value"
"n/a","20:30:18.3881410","TCC.EXE","4192","QueryOpen","C:\","FAST IO
DISALLOWED",""
"n/a","20:30:18.3882342","TCC.EXE","4192","QueryBasicInformationFile","C:\","FAST
IO DISALLOWED",""


On Mon, May 31, 2010 at 8:23 PM, vefatica <> wrote:


> On Mon, 31 May 2010 22:26:18 -0400, Jim Cook <> wrote:
>
> |TCC 11.00.48 Windows Vista [Version 6.0.6002]
> |TCC Build 48 Windows Vista Build 6002 Service Pack 2
> |
> |D:\>echo %_inetaddr
> |TCC: (Sys) The file name is too long.
> |ECHO is OFF
> |
> |D:\>echo %_inetname
> |TCC: (Sys) The file name is too long.
> |TCC: (Sys) DNS name does not exist.
> |ECHO is OFF
>
> The DNS error happened because I tried to lookup 127.0.0.1. I thought I
> fixed
> that. I don't know about the other error. Do you have any ideas what name
> might be too long? (The message is generic and probably doesn't really
> refer to
> a file.)
> --
> - Vince
>
>
>
>
>



--
Jim Cook
2010 Sundays: 4/4, 6/6, 8/8, 10/10, 12/12 and 5/9, 9/5, 7/11, 11/7.
Next year they're Monday.
 
On Mon, 31 May 2010 23:40:12 -0400, Jim Cook <> wrote:

|I used procmon and filtered based on TCC/pid and removed SUCCESS results.
|Does this help?

Not really. I'm not doing any of that. I'm just calling three high-level
network functions to enumerate the adapters and do the DNS lookup. I tweaked
the error messages so they'd say what function failed; knowing that will help.
There's a new one in place at ftp://lucky.syr.edu/4plugins/4utils.zip.

The DNS error should have gone away. I'm curious about the other.

Please report again.
--
- Vince
 
Problem with CDO

I got the new version of 4UTILS dated 06-01-2010 00:29.

_INETADDR and _INETNAME now return the empty string when the address is indeterminate (behind two firewalls). That's excellent.

CDO seems to require that the variable TMP be assigned to a directory that does not need to be quoted.

Code:
C:\work> ! Default setting for TMP

C:\work> set tmp
C:\Documents and Settings\DCantor\Local Settings\Temp

C:\work> cdo `3 ; echo %_time   ; enddo`
TCC: Unknown command "C:\Documents"

C:\work> set tmp=c:\temp

C:\work> cdo `3 ; echo %_time   ; enddo`
DO 3
echo 01:22:21
01:22:21
echo 01:22:21
01:22:21
echo 01:22:21
01:22:21

C:\work>

This is inconvenient since Windows sets the TMP variable, by default, to be in the user's profile directory tree at
"%USERPROFILE%\Local Settings\Temp" without the quotes.
 
Re: Problem with CDO

I got the new version of 4UTILS dated 06-01-2010 00:29.

_INETADDR and _INETNAME now return the empty string when the address is indeterminate (behind two firewalls). That's excellent.

CDO seems to require that the variable TMP be assigned to a directory that does not need to be quoted.

That's my fault, for not quoting it when I pass it to TCC's Command() function. I'll fix it later. As for the temp directory itself, I'm just using whatever the Win32 API function GetTempPath() returns.

Error messages from _INET*? ... gone, I hope.
 
I made some changes to 4UTILS (32-bit only, so far). Comments and bug reports are welcome as always.
ftp://lucky.syr.edu/4plugins/4utils.zip
Hi,

I never get lucky on lucky, but I can get into the barnyard.
I understand you need to keep the riffraff out (and I DO come from one of those rogue states in Northern Europe), so I was wondering:
Is it possible for you to leave a copy behind the barn?
Thanks in advance!

--
haskell
 
Re: Problem with CDO

That's my fault, for not quoting it when I pass it to TCC's Command() function. I'll fix it later. As for the temp directory itself, I'm just using whatever the Win32 API function GetTempPath() returns.
.
Yup, and that API function obviously returns the contents of the TMP environment variable. Yes, enquoting it should work. I see the temporary file name is CDOTMP.BAT -- what happens if two instances of TCC try running a CDO command at the same time?
Error messages from _INET*? ... gone, I hope.
Yes, the error messages are gone, and the empty strings are detectable.

Thanks.
 
Re: Problem with CDO

----- Original Message -----
From: "dcantor" <>
| Yup, and that API function obviously returns the contents of the TMP
environment variable. Yes, enquoting it should work. I see the temporary
file name is CDOTMP.BAT -- what happens if two instances of TCC try running
a CDO command at the same time?

Vince,
1/ you could use %_PID in the temporary file's name for uniqueness
2/ why do you use the .BAT extension? Two issues:
2.1/ Some users may have .BAT and .CMD associated with CMD.EXE
2.2/ much more overhead to process a .BAT file one line at a time than a
.BTM

--
Steve
 
Re: Problem with CDO

On Tue, 01 Jun 2010 10:00:40 -0400, Steve Fábián <> wrote:

|1/ you could use %_PID in the temporary file's name for uniqueness
|2/ why do you use the .BAT extension? Two issues:
|2.1/ Some users may have .BAT and .CMD associated with CMD.EXE
|2.2/ much more overhead to process a .BAT file one line at a time than a
|.BTM

Did those things. The file name gets quoted, contains the PID, and has the
extension "btm", as in "cdo3296.btm". New plugin on lucky.syr.edu.
--
- Vince
 
On Tue, 01 Jun 2010 08:43:06 -0400, haskell <> wrote:

|I never get lucky on lucky, but I can get into the barnyard.
|I understand you need to keep the riffraff out (and I DO come from one of those rogue states in Northern Europe), so I was wondering: Is it possible for you to leave a copy behind the barn?

I think I just put a new 4utils.zip on barnyard.
--
- Vince
 
Re: Problem with CDO

On Tue, 1 Jun 2010 10:00:40 -0400, Steve Fábián <> wrote:

|1/ you could use %_PID in the temporary file's name for uniqueness
|2/ why do you use the .BAT extension? Two issues:
|2.1/ Some users may have .BAT and .CMD associated with CMD.EXE
|2.2/ much more overhead to process a .BAT file one line at a time than a
|.BTM

Did those things. The file name gets quoted, contains the PID, and has the
extension "btm", as in "cdo3296.btm". New plugin on lucky.syr.edu.
--
- Vince
Excellent. Looks good to me. Thank you.
 
I enhanced @DU[] thus:

Code:
@DU[dir\[wild][,[R][A|F|D]]] = bytes/counts
R(ecurse); A(llocated); counts: F(iles), D(irs)

Anything that's a directory, not a reparse point, not ".", and not ".." is searched (if I can search it) and counted as a directory. Anything that's neither a directory nor a reparse point is counted as a file. I'll be reluctant to try to make my totals agree with Explorer's, CMD's, TCC's, or anyone else's. :-)
 
I enhanced @DU[] thus:

Code:
@DU[dir\[wild][,[R][A|F|D]]] = bytes/counts
R(ecurse); A(llocated); counts: F(iles), D(irs)

I further enhanced it with a V(erbose) option (good with an alias, see below).

Code:
v:\> uhelp @du
@DU[dir\[wild][,[R][A|F|D|V]]] = bytes/counts

R(ecurse); A(llocated); counts: F(iles), D(irs); V(erbose)

v:\> alias du `echo %@du[%1,%2$]`

v:\> du v:\*.txt  rv
Bytes: 4058354   Allocated: 4190208   Files: 44   Dirs: 0
 
Yet another option in @DU[] ... J(unctions) ... count and follow reparse points.

Code:
@DU[dir\[wild][,[R][J][A|F|D|V]]] = bytes/counts

R(ecurse); A(llocated); counts: F(iles), D(irs); J(unctions); V(erbose)
 
Vince, do you have a web page somewhere for your plugins? If so, you might add a link to it in your board profile.
 
On Wed, 02 Jun 2010 15:11:46 -0400, Charles Dye <> wrote:

|Vince, do you have a web page somewhere for your plugins? If so, you might add a link to it in your board profile.

No, I don't. And they change so often that I hate bothering Rex with them. I
could put a link to ftp://lucky.syr.edu/4plugins in a prominent place if I knew
how. I don't know if Rex could/would do that (or even if it's a good idea). I'm
happy with the majority of users of my plugins being regulars in these forums
and I'm not craving publicity.

(OT) I do have an ancient personal home page (haven't touched it in years) that
touts some programs I wrote a very long time ago. One of them, SETENV.EXE (like
TCC's "SET /S|U|V|D") is well over 12 years old (updated once or twice). Once
upon a time it got hundreds of DLs a day; it still gets tens a day. Just last
night, I googled "setenv" and I was the 10th result out of ~638,000.
--
- Vince
 
No, I don't. And they change so often that I hate bothering Rex with them. I could put a link to ftp://lucky.syr.edu/4plugins in a prominent place if I knew how.

How about here? http://jpsoft.com/forums/profile.php?do=editprofile

(OT) I do have an ancient personal home page (haven't touched it in years) that touts some programs I wrote a very long time ago. One of them, SETENV.EXE (like TCC's "SET /S|U|V|D") is well over 12 years old (updated once or twice). Once upon a time it got hundreds of DLs a day; it still gets tens a day. Just last night, I googled "setenv" and I was the 10th result out of ~638,000.

Yah; that's the page I find when I google "vincent fatica 4utils". (Love the Escher; I always enjoy Escher.)

Geeklink: http://www.andrewlipson.com/escher/relativity.html
 
Back
Top