Le Reve at Wynn Las Vegas

Batch MS DOS ASCII to Web Converter Script 2

This is an update to my  little script that converts MS DOS ASCII files, such as NFO's  or FILE_ID.DIZ text files (Code Page 437, USA) to ASCII files with HTML encoded Unicode characters and also to Unicode text for the use in MS Windows. The HTML encoded ASCII files can be used to display the ASCII art, specifically the "High ASCII" or block ASCII art on a web site. The script is written in VBScript, but the release package also includes a Windows executable, which is the VBScript converted via VBSEdit by Adersoft.

I used the same script to prepare the ASCIIs in my text art galleries on my web site, such as:

just to name a few.

You can download the script here:   ROY-BATCHCONVERT-ASCII2WEB2.ZIP (700KB)

The Release NFO File :)




▄▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ █▄
▀███████████▄▄ ▄ ▄▄ ▄▄██████████▀████▀▀███▄ ▄▄████████▄
▀█▓█ ▀████ ▄███ ▄▄▓▓▓█ ▄██████▀▀ █▒▓█ ███▀ █▓▓█ █████▀▀ ██▀█▀▄
██▓█ █▓▓██ ██▓▓█ █▓▓▒▒▓█ ███▓██▀ ██▓██▐██ █▓▓▌ ██▓█▀ ▐▀ ▐ ▌
████ ▐█▒▓▓█ ▄▄████▄ ██▓█ █▓▒░▒▓▌ █████ ████ ██▌ ▐▓▓█▌ █▓▓▓▌ ▌ ▐ ▌
████ ▄▄█▓█▀▀ ▄██▀▀ ███▐███ █▓▒░▓█ ▀███▄ ▀ ▄███▀▄▄▄ ██▓██ █▓▒█ ▀▀▀▄▄▄ █
▐▌ ▀██▀███▄▄ ███▌ ▐▓▒▓▌███▄ ██▓▓█ ▄▄▄ ▀▀████▄▄ ▀███▌ ▀▀▀██████ █▓▒█ ▀▀
█ █ ▀█ ▀█▄ ▀█ █▓▒▓█▀███▄ ███▓█ ▐█ ▀▌ ▀█▓▓█ ███ ▀████ █▓▓█ █
▐▌ ▐▌ █ █▌ █▄ ▄█▒░▒█▌ ▀███████▌ ▀▌ █ █▒▓█▐██ █ ▀█ ██▓▓▌ ██▄
█ █ ▐▌ ▐█ █████▓░▒▓█ ▀▀████ █▄▄█▌ █▓██ ██ ▐▌ █ ██▓█ ████
█▄▄▄▄▄▄▄█▄█ █ ▀█████▓█▀ ▄▀▄ ████ ▀███▄ ▄████ ██ █ █ ████▄▄ ████
▄▀ █ ▀▀▀▀ ▄▀ ▀▄▄ ███▌ ▀▀██████▀▀ █▌ ▄▀ █ ▀█████████
▄▀ ▐▌ ▄▀ ▀█▄████ ▌ ▄▀ █ ▀▀▀▀███
█ █ ▀▄ ████ ▀▀▀▀▀▀▀▀▀ ▀
█ █ ▀▀▄▄ ▄███▀ Roy<SAC>
▀▀▀▀▀▀▀▄▄▄ █ ▀▀▀▀▀ ▄▄██████▀ ▄▄▄▄ █▄
▀▀█ ███▀ ███ ▄██▀████ ██▄ ▄█ ▄██▄
███ ▀ ██▀ ████ ███▀██ ███
▄█▄ ██ ▄ ██▌ ▐███ ██ █ ███
████▐█ ██▄ █ ████ ██ ███
▀▀ ▐██▄ ███ ██▄▄▄████ ██ ███
▀▀██████ ▀█████▀ ██▀ ███▀
▀ ▀▀ ▀ ▀
Roy/SAC presents

▒ ▀ ▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀ ▀▀ ▀ ▒
▓ Batch ASCII to Web File Converter 2 ▓
■▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄■
▀█▀ ▀█▀
▀▄ Packaged and Released on January 25, 2010 ▄▀
▌ ▐
▄▀ ▀▄
▐ ▌
▀■· ·■▀

░▒ ▄■·
·■▄▄▄▄▄▄▀■· ·■▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▒▓▄▓▄▄▄▄▄▄▄▄▄ ■ ▄ ■▄ ▄▄▄▄▄▄■·
▀█▀▓▒░ ▀■· ·■▀ ░░░▓▓ · ■ ▄▄▄▄▓▓▄▄▄ ░ ░▒▓▀█▀
▀▄ ■▄ Release Notes ... ░ ░▒▒▒▓▒ ░░░░░░▒▓▒░ ░ ▀■· ▄■ ▄▀
▌ ▀▀■▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▓▓▓▒░ ■▄▄▄▄▄▒▄▄▄▄▄▄▄▄▄▄■▀▀ ▐
▄▀ ▒▓▓░ ░ ▀▄
▐ ░▒▓ ▌
▀■· ░▒ ·■▀

A little script that converts MS DOS ASCII files, such as NFO's
or FILE_ID.DIZ text files (Code Page 437, USA) to ASCII
but HTML encoded files that can be used to display the ASCII
art, specifically the "High ASCII" or block ASCII art on a
web site or to Unicode Text files for the use in Windows Apps.


───────── ▄ ▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄ ▄▄▄ ▄ ▄▄▄ ▄▄▄▄▄ ▄ ─────────
·R·E·L·.· ▄ ▄▄▄▄ ▀▀▀▀▀▀███ ▀▀▀▀▀▀▀▀███ █ ███ ▀ ███ ▄▄▄▄ ▄ ·2·0·1·0·
─────────── ▄ ▄▄▄ ███ ▄▄██▀ █ ███ █ ███ █▄ ▀▀▀▀▀███ ▄▄▄ ▄ ───────────
▄▄ ███ ▄ ███ █ ███▄▄▄▄▄▄▄▄ ▄▄▄▄▄███ ▄▄
▀▀▀ ███ ▀ ▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀


For example the small logo above (which is in DOS ASCII Format)
would be converted to the following;


&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;
&#9604; &#9604;&#9604;&#9604;&#9604; &#9604;&#9604;&#9604;&#9604;&#9604;
&#9604;&#9604;&#9604;&#9604; &#9604;&#9604;&#9604;&#9604;&#9604;&#9604;
&#9604;&#9604;&#9604; &#9604; &#9604;&#9604;&#9604; &#9604; &#9604;&#9604;
&#9604; &#9604;&#9604;&#9604;&#9604;&#9604; &#9604; &#9472;&#9472;&#9472;
&#9472;&#9472;&#9472;&#9472;&#9472;&#9472; &middot;R&middot;E&middot;L
&middot;.&middot; &#9604; &#9604;&#9604;&#9604;&#9604; &#9600;&#9600;&#9600;
&#9600;&#9600;&#9600;&#9608;&#9608;&#9608; &#9600;&#9600;&#9600;&#9600;
&#9600;&#9600;&#9600;&#9600;&#9608;&#9608;&#9608; &#9608; &#9608;&#9608;
&#9608; &#9600; &#9608;&#9608;&#9608; &#9604;&#9604;&#9604;&#9604; &#9604;
&middot;2&middot;0&middot;1&middot;0&middot; ...


Note: I manually added line breaks and spaces to the example for
NFO layout reasons and it is also not the entire logo.
I included the files roy.asc and roy.web as examples also.
The file Roy.TXT contains the same example for the conversion to
Unicode text result.


The Web Encoded ASCII does not include <BR> Tags for the line–breaks
You have to add those manually or do what I do on my web site and
enclose the code in <PRE> </PRE> tags, which preserves the line–breaks
within the enclosed text.

Since the result is Unicode and not DOS ASCII anymore, you can
use any monospace font to display the ASCII somewhat correctly.
You won't get a 100% acurate result anyway, because the old
MS DOS font set is not part of Windows anymore. What you can get
is only a close aproximation. I use on my web site the font
"Lucida Console", which seems to be installed on many machines.
If the Windows of the user who visits your page with the ASCII for
example does not have that font installed, Windows will automatically
pick another font that comes close. I use the following CSS formatting
for the PRE tags where I show ASCIIs.

pre {
background–color:#000;
color:#FFF;
display:block;
font–family:"Lucida Console", monospace;
font–size:9pt;
line–height:12px;
padding:10px;
text–align:left;
}

If the PRE Tag is also used for something else on your web site
then you can also define it for a specific class selector like


pre.asciiart {
...
}

You would then also have to extend the PRE HTML tag like this:

<PRE class=asciiart>
...
</PRE>

The script is designed to convert all files with a specified
extension (.ASC by default) to web ready files with a new
extension (.WEB by default, but you could also make it .HTML or
whatever).

There are two additional options, where I recommend
to use the defaults (which is "yes").

The first option is "HTML Encode?", which means that all non–US–ASCII
characters (the 7 bit ASCII codes) will be converted to HTML codes
like &#XXX;. Also standard ASCII characters that could be misinterpreted
by HTML or DHTML and XML are also encoded, like the " becomes &quot;,
& becomes &amp;, < becomes &lt; and > becomes &gt; etc.
If you select "No", the ASCII will be converted to Windows Unicode (UTF–8)
instead.


The second one is "Sanitize?"
What that does, is removing ASCII characters with an ASCII code
smaller than 32, which are special control characters that cannot
be printed anyway, with 3 exceptions, chr(10) = line–feed,
chr(13) = cariage–return and chr(9) = tab. LF and CR remain unchanged.
Tab characters will be converted to 8 spaces, which is the default
MS DOS tab–stop. You might not want to select "Yes", if you convert
ASCII files to Windows Unicode, but you could, if you like.


Part of this package is the image "Batch–ASCII2WebOrUniCode–Steps.jpg",
which shows screenshots of all the steps where the script goes through.

Enjoy!
Carsten aka Roy/SAC

p.s. This script is freeware. Do with it whatever you like, except
selling it. You can use it free, copy it, share it, even modify it
if you like to. You are using it at your own risk. You cannot make me
liable for any damage or loss of data that might results directly
or indirectly because of the use of my script.

p.s.2 I also included a very early beta of a HTA version of the tool
with an interface. The conversion from Unicode to ASCII is not supported
by the HTA application yet and the file selector uses MS Word and might
not work, if you don't have Office installed. Since the latest security
updates for Windows XP as well as Vista and Windows 7, the drag and drop
feature also stopped working unfortunately.

▄■·' `·■▄
▐ ▌
▀▄ ▄▀
■▄ ▄■
▀■▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄■▀

░▒ ▄■·
·■▄▄▄▄▄▄▀■· ·■▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▒▓▄▓▄▄▄▄▄▄▄▄▄ ■ ▄ ■▄ ▄▄▄▄▄▄■·
▀█▀▓▒░ ▀■· ·■▀ ░░░▓▓ · ■ ▄▄▄▄▓▓▄▄▄ ░ ░▒▓▀█▀
▀▄ ■▄ Installation ... ░ ░▒▒▒▓▒ ░░░░░░▒▓▒░ ░ ▀■· ▄■ ▄▀
▌ ▀▀■▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▓▓▓▒░ ■▄▄▄▄▄▒▄▄▄▄▄▄▄▄▄▄■▀▀ ▐
▄▀ ▒▓▓░ ░ ▀▄
▐ ░▒▓ ▌
▀■· ░▒ ·■▀

You can either execute the VBS script file (which is the source code
and should be executed by WSCRIPT.EXE, which comes with Windows) or
run the EXE file. The EXE is just the VBScript converted to an
executable via VBSEdit by Adersoft.

Also check out my little intro "RoySAC.exe" :)

▄■·' `·■▄
▐ ▌
▀▄ ▄▀
■▄ ▄■
▀■▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄■▀

░▒ ▄■·
·■▄▄▄▄▄▄▀■· ·■▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▒▓▄▓▄▄▄▄▄▄▄▄▄ ■ ▄ ■▄ ▄▄▄▄▄▄■·
▀█▀▓▒░ ▀■· ·■▀ ░░░▓▓ · ■ ▄▄▄▄▓▓▄▄▄ ░ ░▒▓▀█▀
▀▄ ■▄ Greeting ... ░ ░▒▒▒▓▒ ░░░░░░▒▓▒░ ░ ▀■· ▄■ ▄▀
▌ ▀▀■▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▓▓▓▒░ ■▄▄▄▄▄▒▄▄▄▄▄▄▄▄▄▄■▀▀ ▐
▄▀ ▒▓▓░ ░ ▀▄
▐ ░▒▓ ▌
▀■· ░▒ ·■▀

Defacto2.net, Scene.org, Textfiles.com, Pouet.net
Demoscene.tv, GfxZone, Intro Inferno, C64.org, OSDM,
AMP, Edge, Sizteen Colors, Flashtro, Old–Skool.net,
Untergrund.net, Bitfellas, Exotica and everybody else who
works on preserving the rich history of the scene and makes
it accessible for future generations to enjoy.

Group Greetings:
Blocktronix (thanks for keeping the ANSI scene alive and kickin)
CPI (Oldskool forver!)
Andomeda Software Development (Your demos rock! Period!)

Personal Greetings to:
Madmax/CPI, Peace/Testaware, Smash/Fairlight, Shamen/Dytec,
DaLezy, Dipswitch, Mandibular Joint Dysfunction, RaD Man/ACiD,
Jason Scott/Textfiles.com, Ben Garrett/Defacto2, my blog readers,
Lord Scarlet/SixteenColors, Zerovision/Blocktronics and everybody
else I know and forgot to mention :)

For a full list of greetings, check out my Intro, which is
included with this release.

▄■·' `·■▄
▐ ▌
▀▄ ▄▀
■▄ ▄■
▀■▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄■▀

░▒ ▄■·
·■▄▄▄▄▄▄▀■· ·■▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▒▓▄▓▄▄▄▄▄▄▄▄▄ ■ ▄ ■▄ ▄▄▄▄▄▄■·
▀█▀▓▒░ ▀■· ·■▀ ░░░▓▓ · ■ ▄▄▄▄▓▓▄▄▄ ░ ░▒▓▀█▀
▀▄ ■▄ Other Stuff ... ░ ░▒▒▒▓▒ ░░░░░░▒▓▒░ ░ ▀■· ▄■ ▄▀
▌ ▀▀■▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▓▓▓▒░ ■▄▄▄▄▄▒▄▄▄▄▄▄▄▄▄▄■▀▀ ▐
▄▀ ▒▓▓░ ░ ▀▄
▐ ░▒▓ ▌
▀■· ░▒ ·■▀


Check out the intro in this release "RoySACIntro.exe" :)

and don't forget visiting http://www.RoySAC.com
and to check out my blog at http://www.roysac.com/blog

Additional URLs you might want to check out

Over 300 demos, cracktros and other scene related videos
http://www.youtube.com/sacreleases

Scene Images of all sorts
http://www.flickr.com/photos/cumbrowski/collections/72157611288618058/
http://www.flickr.com/photos/cumbrowski/collections/72157612320706642/

My Mediafire.com file share with tons of files to download!
http://www.mediafire.com/?sharekey=b570d9e07985879c7069484bded33bcd06b0971baa3373fa

My ASCII Art Academy to learn more about classic Text Art
http://www.roysac.com/learn/

Links to other useful resources online to learn more about the scene
http://www.roysac.com/roy_links.asp

Signing off!

Roy of Superior Art Creations, CPI, Dytec,
Razor 1911, TRSI, TDU–Jam, PNS

▄■·' `·■▄
▐ ▌
▀▄ ▄▀
■▄ ▄■
▀■▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄■▀

You can download the script here:   ROY-BATCHCONVERT-ASCII2WEB2.ZIP (700 KB)

Batch-ASCII2WebOrUniCode-Steps

You can download the script here:   ROY-BATCHCONVERT-ASCII2WEB2.ZIP (700 KB)

Enjoy!
Carsten aka Roy/SAC

PS. This script is freeware. Do with it whatever you like, except selling it. You can use it free, copy it, share it, even modify it if you like to. You are using it at your own risk. You cannot make me liable for any damage or loss of data that might results directly or indirectly because of the use of my script.

BatchASCII2WebBeforeAfter6

Labels: , ,

McAfee Security Center and Issues with AntiVirus Solutions in General

I am using McAfee Security Suite and are very unhappy with it. I was contacting support and also expressed my issues at their user support forums. I got responses back from other users and learned that there are currently no real solutions for the fundamental issues that I encountered.

See my McAfee Support Forum Posts:

I could not believe this and started to get really frustrated. I am looking for a long time for proper Anti virus and anti spyware solutions for my personal and professional use in my home network, but got disappointed with everything I tried so far. That the anti-virus software industry is in such a bad shape, which got only worse over the last years, I refused to believe at first. But then people contacted me privately and we exchanged some tips and experiences and it seemed that there was no other way around than facing reality.

mcafee-unsecure-logoLast years final issue of the German computer magazine CT (Magazin Computer Technik Issue 26/2009) by publisher Heise included a review of the 2010 versions of the Anti-Virus software solutions AVG Anti-Virus Professional 9.0, Bitdefender Antivirus 2010, Bullguard Internet Security 8.7, F-Secure Anti-Virus 2010, Kaspersky Anti-Virus 2010, McAfee AntiVirus plus 2010, Microsoft Security Essentials, Norton AntiVirus 2010 and PC Tools Spyware Doctor with Antivirus and ThreadFire.

I am still a subscriber to the magazine (the print version), even here in California, because nothing I have seen here in English comes even close to the quality and depth of CT. It would be like comparing Notepad with MS Word or MS Paint with Adobe Photoshop. There is unfortunately no English version of the magazine, which I feel very sorry about and for you, if you don’t speak German.

The tests revealed already what I had feared, but more so did the editorial of that issue, which was about the state of Anti-Virus software, written in a narrative and funny way to cope with the actual sadness of things in this industry. It is titled “Protection for Others” and was written by Gerald Himmelein. I am posting a translation of this editorial here. The original German version can be accessed online and in PDF format from this page at the Heise.de web site. This editorial sums up my own experiences and frustrations perfectly.

ctmag Protection for Others

by Gerald Himmelein - Editorial for CT Magazin 26/2009 from December 2009

On an IT conference somebody invited me to check out the beta version of a program, accompanied by a nice female opinion researcher. Basically, i found the application okay although for me personally it lacked some features. Immediately several people came into my mind, who would get along with it pretty well.

When I said that the smile in the opinion researcher’s face briefly froze. After we were done, she explained somewhat frustrated that she was hearing this phrase over and over. At the end, the program never hit the market: nobody wanted to use it, all wanted it simply press it on to somebody.

This incident came intro my mind during the Anti-Virus Scanner tests (from page 98). For each test object I instantly knew somebody who would be a perfect fit for the solution. For some of the programs people came to mind that I did not like very much. Certain providers seem to want to punish their users for the legitimate purchase of their product.

Seen several times: The scanner locks away a harmless program without asking into the quarantine.
Just when you fought back its freedom (Do you really don't want to abort?"), the background guard hits and kicks the just restored file back into its prison cell. Even the best performance can not make up for this.

Also nice: a few scanners make a big fuss if they find the tracking cookies that were swallowed by the web browser as if they had just detected extreme dangerous malware. If one day a real threat comes along, the user probably only responds shrugging one's shoulders: Can't be so bad. Desensitization through Hysteria.

Every single or last one of the virus-protectors cares a great deal that the user will notice how super-active he is being protected because of them. Details are held back, such as the age of the virus definition. If the scanner gives an alert, he disguises the true nature of the threat with cryptic abbreviations, which remain unexplained for the most part. "Trojan" is used as generic classification, for malicious key-loggers as also for completely harmless PC-Demos.

After finishing the tests of the current generation of scanners, I remain hesitant towards the decision, on which of those "horses" I should bet on privately. Without a "condom" into the Internet isn't a solution either.

If we should bump into each other one day, you rather don't ask me which virus scanner you should use. If I am in a good mood, I will only look at you unhappy. If I am in a bad mood, I might get myself to actually make a (poor) recommendation. I might suggest to get a Mac instead.

The Editorial depicts exactly the behavior of McAfee’s AntiVirus solution, but I also used other software solutions in the past myself and encountered similar issues, just not as bad yet ad with McAfee. With McAfee several tools that I frequently use ended up in the quarantine without a white-list option.  

Still no news from McAfee. I am still completely irritated at this lack of fundamental features and could not believe that I am dealing here with the same company whose products were the first anti-virus software I knew about and used for year (1991-2000). I then used various corporate versions of other anti-virus software, including Kaspersky, through my former Employers. I got self employed in 2007 and looking for a good anti-virus/spyware solution for my personal/business home network ever since.

malware I wasted money any several solutions and stopped shopping around for the moment. I won't touch Norton Anti-Virus by Symantec unless they turned around to become as good as McAfee appears to have gone bad.

I used to be happy with Spybot S&D in combination with the old Microsoft Defender (while it was still in beta and not a "full product package"), but both of those products turned sour a couple years ago.

I had Avira, which sucked. The default settings of their full protection suite basically removed the machine from the network, including the home network, not to mention the internet and impossible to configure properly, even for somebody who actually knows more about computers than the average user. It also sucked the life out of the machine while it was running in the background.

PC Tools Anti Spyware + Anti Virus was okay and did not eat up too much resources. You could also exclude stuff, like video files (based on extensions) or even specific files by path and file name.

However, I don't trust it to be as up to date as it could and should be. It can also be rendered disabled by an attacker too easily. I experienced this first hand, when I literally saw how a Trojan infected the machine and finished it off in no-time. It saw the attack, wasn't able to block it. Claimed that it caught and removed it and then kept silence ever after, even when I knew that the machine was not cleaned properly. Super Antispyware together with Spybot S&D and some help finished it off eventually.

I still use Super Antispyware (free Version) as a once in a while full system scanner/double checker, but don't use the real-time protection of it.

LavaSoft Pro used to be the king of the Anti-Spyware/AdWare removers and blockers, but their once slim and efficient shareware tool also turned big-business and that was the end of it.

Who is left to check? Sophos? Trend Micro and Kaspersky I guess. Kaspersky has a good reputation, but I have not checked out their offers yet. I have seen too much good turn bad that I am reluctant to waste time and money once more on things that have little to do with what I do to make a living (using a computer).

Poorly designed user interfaces that are hard to use, too little transparency and information given to the user to be able to make a conscious and educated decision, combined with varying results regarding detecting threats that miss as much real threats entirely as they have false positives. Things went from bad to worse with little improvements by some providers in a few areas, but too little. In the article with the tests itself, CT also could not make a honest recommendation for any product that they tested (so the joking in the Editorial was not a joke after all). Finding the right combination is currently the only way to go at the moment; nothing easy to do.   

Things got harder for the protection and scanner tools, certainly. They know that they are currently losing a war, so they should be a bit more helpful with providing users with as much and specific information, options and suggestions and also tools that the user himself can make the final calls at the end of the day. They go into the complete opposite direction instead and play the "risk management" game by numbers and odds calculated against the cost of development versus possible loss in revenue. I don't gamble and don't want to gamble.

I am always open to hear new ideas, recommendations and options, if you have any, let me know in the comments below. I’d appreciate it.

Cheers!

Carsten aka Roy/SAC

Note on the Side: I uninstalled McAfee from my computer a few days ago, because I had it with them. I had it more OFF than on to prevent that it quarantines programs that are not infected that I happen to use every now and then. It didn’t learn to do better and I also could not white list. Add to that all the other short-comings and it became clear that one had to go.

Well,  McAfee does not help me to do my work and earn a living, but some of the tools it removed from my HD do. I reinstalled PC Tools Spyware Doctor with Antivirus for the time being. My subscription there is still good for another 2 1/2 months. But I am not really happy with them either, but it is better than using nothing at all :(.

Labels: ,

Windows 7 Upgrade – My User Experience

fromvistatowin7I was avoiding Windows Vista almost to the bitter end. I only installed the 64-Bit Ultimate edition in September 2009 on my new notebook in anticipation of getting the free upgrade to Windows 7 Ultimate later that year.

Yes, Vista sucked and I knew why I was doing myself a favor avoiding it at all cost. Many of the severe issues Vista had when it started were fixed. I used a version with SP1 and most patches before SP2 was released, so I don’t even want to know what users of the pre-SP1 versions had to endure.

I never installed a beta version of Windows 7, but from what I heard was this OS version looking very promising and make up for all the bad things of its predecessor. I got my copy of Windows 7 in December and installed it during the holidays over my existing Vista Ultimate 64-Bit installation. I still have a machine running Windows XP Professional, but Windows 7 does not support an upgrade from Win XP unfortunately.

The Upgrade Process from Vista Ultimate to Windows 7

The upgrade process itself ran for the most part automatically. The upgrade wizard complained about a few browser toolbars that seemed to be incompatible and had me uninstall it. Among those was the Google Toolbar, which I did not uninstall (because the provided wizard could not do it and I did not want to remove it via the control panel and lose all my custom stuff). Anyhow, the upgrade went okay. I had to download a new version of the ATI Control Center, because the previous version had also be uninstalled due to incompatibility issues. After that all seemed to be fine, emphasis on SEEMED.

One exception was Internet Explorer, which hang forever when I tried to start it after the upgrade. The problem was with the StumbleUpon browser toolbar, which was not seen as an issue by the upgrade wizard. I had to disable it manually and IE started fine after that. The freeware tool “Free Download Manager”, which I use for larger file-downloads and other things also did not work properly after the upgrade. A file download that would have triggered the launch of FDM resulted in an error message claiming that the program was not configured properly. A re-install over the previously installed version did not fix it. I need to try to uninstall it entirely and then re-install it, to see if that will do the trick. My suspicion is that it will not, because of the other security settings issues that I experienced after the upgrade as well, but more to that in the next segment of my blog post.

Windows 7 Security Management Issues

Windows 7 made changes to the system security management and behavior. It was already with Vista annoying as hell that even an account with administrator privileges and permissions still encountered situations left and right where required read/write/delete/execute permission were missing. I got most of those issues fixed in Vista already by disabling the security advisor and transferring ownerships of the Windows system folder inclusive files and sub folders to my main user account. The administrator account in Vista was disabled by default and it was suggested not to keep it enabled or use it. The same is the case in Windows 7. However, some of my old permission issues came back and also new ones appeared.

Problems with Portable Apps

I switched for many of the tools and programs that I use frequently to a portable version wherever I possibly could. This makes backups easier and also taking the tools with you to use on another computer via a USB thumb-drive. No registry mess that is created AND required for the program to run, no files are copied and sometimes replaced in the Windows system directories or “Common Files” folder beneath “Program Files” or “Program Files (x86)'”. Many of the tools store stuff, like custom user settings or last accessed files in the registry and uses them, if they exist and create new ones, if they do not. No problem, at least under XP and Vista; different story with Windows 7. Several of my portable versions don’t work at all or crash, if I run them via my own user account with administrator permissions (and a member of the administrator user-group).

I got most of them to work, if I right-clicked on the executable and selected “Run as Administrator”. That is annoying, especially, if you forget doing that first and the program loads and loads and then crashes to remind you of how it has to be started. After that other problems also appeared. For example if I started a tool as administrator, all my network mappings to the various network storages in my home network become inaccessible. This has two reasons, first of all are those shares not mapped for the “Administrator” user, but even if they were, is there also the problem, that I did not setup users with the name “administrator” with the same password as the password for the local administrator account at those network storage devices.

Some programs became unable to store any files on the computer outside of the user folder (EG. My Documents). I don’t have multiple users using my machine and always kept my documents in different folders in the root of the hard drive outside the “Users” (Vista/Win7) and “Documents and Settings” (XP) folder, because of permission issues in some cases where one computer in my home network group was unable to access any user folder or system folder on another remote machine within the same network.

Codec and Video/Audio Filters Management

Things that seem to be impossible to change with an administrator account that is not the user login “administrator” are settings stored in the registry, such as video and audio codec and filter configurations. This whole stuff was already a nightmare to cope with in XP, got a bit worse in Vista and even more so in Windows 7. Dudes at Microsoft, you are taking steps in the wrong direction here!

Windows Explorer has the tendency to hang and crash more frequent than with XP, something that I noticed with Vista already, but became more severe with Windows 7. Cause: unknown.

The User Interface

I can live with the fact that they moved the “Show Desktop” button to the far right of the taskbar. What I absolutely hate are two other changes to the task bar.

1) The quick-launch bar/menu is gone entirely and was only replaced by the option to pin programs to the task bar, which is not the same. I had folders in my quick-launch menu and basically used it as an alternative and faster programs start menu with all the shortcuts to scripts and programs that I am using all the time.

2) The grouping of running instances of the same program used to be an optional feature and is now the default option without the ability to turn it off. The individual instances of a program can be accessed easier with Windows 7, kudos there, but this wasn’t and isn’t enough reason for me to abandon the option of not grouping instances altogether.

Many changes to the start menu design and functionality are improvements, yes, but I hate how they did the tree navigation in the “All Programs” section. You cannot make sub-nodes expand in fly-out menus anymore, but what annoys me the most is that sub folders beyond “All Programs” are not being expanded automatically if the mouse pauses of them, as I specified it in the properties for the Start Menu.

Logitech and Bluetooth Problems

Other issues that I continue to have and which already started with Vista are related to my Bluetooth wireless keyboard and mouse from Logitech. The mouse simply stops working in the middle of things and won’t come back in most cases until a reboot of the computer or by simply disabling and then re-enabling Bluetooth via the provided button for that on my laptop. The devices appear fine in the Bluetooth device manager, even after they stopped functioning. I believe that this is a driver issue, but are surprised that Logitech did not solve it yet after such a long time. Keep in mind that I had the same issue already in Vista and the latest “Set Point'” software by Logitech installed.

IE Browser History Not Recorded Anymore

Internet Explorer does not track my browser history since the upgrade. The only items left there were my visits to web sites prior the upgrade. Not even the sites that I just visited in the same user session appear, including not in the section “View by Order Visited Today”. I always had my browser setting set to keeping the history for 999 days, except for SSL secured pages, which I did not track.

I searched at Google and Microsoft’s web site directly to find an answer to this issue, but was not able to find anything yet. My guess it that it is also a problem related to the changed security management in Windows 7, but this is just a hunch and not based on factual things that could proof that.

Files Dialog

Something that I just noticed while I was writing this blog post via Microsoft’s free tool called Windows Live Writer (which I can highly recommend to anybody who blogs, regardless if you are using Blogger, Word Press, Movable Type or Live Spaces etc. It works with pretty much all of them). They seemed to have standardized it, because I think it always looks the same now. However, Live Writer had some extended tabs in that interface, for example to specify a URL to a file on the web instead of a local file, with preview option and all that. This is now gone and probably a side effect of the change to the open-files dialog that is build into Windows. Not so nice, but I noticed via my own programming of VBScript tools that MS changed their system open/save file dialogs with virtually every new Windows version.

Conclusion

I have not figured out all the things related to the security issues with the new Windows 7 Operating System. If you know more about those things, please leave a comment for me and others who have the same problem(s). This would really be appreciated. Thanks in advance already!

All in all I don’t think that Windows 7 deserves the hype and credits. Vista Service Pack 2 became already so close to what Windows 7 has to offer that it become harder to distinguish between Vista and Windows 7 in those areas. Some things of the user interface did improve though, which is good, unfortunately also accompanied by making other things worse again, by removing a feature or option that should have been left alone to begin with. The least they should have done is to keep it in and make it optional for the users who prefer it. Microsoft tends to forget that the majority of their customers are not first time computer users who are unbiased to changes of their user interface and changes to how things work. Unless there is no way to keep the option to make the system to behave and navigate like previous version,

General Note for the Microsoft Product Team(s)

MS should never remove any of them entirely and always keep them there as optional feature. You might get away with replacing something with something entirely new and different, if the selling points and advantages and improvements of the new is so overwhelming that requiring the user to spend time to get acquainted with it is more than justifiable.

Closing Up My First Impressions

I am sure that new things will come up along the way. What I posted here are just my experiences with the new Microsoft operating system after using it for just 2 weeks as a user, doing the same with the PC as I did before, without doing any in-depth tests or explorations of the system components (except where I had to in order to solve some of the problems that I encountered virtually from the start).

I read some stuff about meta-tag(s) features introduced into the operating system with Windows 7, something I am really interested in myself, due to the vast amount of data that I piled up throughout the years to various subjects, including documents, source codes, images, videos, Zip/RAR archives etc. I could not find much in the system myself. Maybe I looked in the wrong places. I noticed that lack of some column types in Windows Explorer, which I really miss, such as “Codec” for video and audio files. Something I am still looking forward to. There must be something Microsoft really improved a lot with the new OS.

PS. My Media Library issues are not solved yet to this day, although I learned a lot of what not to do and which tools and applications are more worthless than others. :)

I am no Microsoft hater, although I am very critical about them. I still believe that they really try to make things better and that there is no evil master plan to make the life of millions of their users miserable.

Cheers!

Carsten aka Roy/SAC

Labels:

Oldskool Demomaker (OSDM) Is No Real Code and Lame

I got such comments several times already. Some folks make a real fuzz about it and take it rather serious. I understand where the haters of OSDM (Oldskool Demomaker) are coming from and thought that I should make some comments about this issue. I have a section on my web site dedicated to OSDM and my own intro productions created with it, if you want to learn more about what I am going to talk about.

Coder700x100[1]

First, I am not a “CODER” myself and never really was, at least not in the Scene. There I was a graphician and also designer, next to being a group leader and organizer and sysop of a bulletin board system, short BBS. I did program tools, such as PPE’s for the BBS software PCBoard, but never intros, cracktros or demos.

OSDMLogoRoy2[1] Close Look at OSDM

I believe that many of the nay Sayers' never really looked at OSDM up close and personal.

OSDM has many limitations and restrictions that could be compared to the limitation that programmers of old DOS PC faced and had to work with and around. You have to cheat a bit here and there to get effects the way you want to, just like back then. OSDM has its own scripting language too by the way, so it is not only point and click. Or let me rephrase it. Yes, you can get results with the tool quickly and with relative easy, but the result looks like quick and dirty as a consequence of that also. Nothing to be proud of, I agree with that totally.

Hard Core Coding Is Dead (Almost)

On modern day PCs, no oldskool hard core coding is really much done anymore nor is it necessary. The computers are so powerful and the OS already comes with so many ready to use APIs for graphical effects, like vectors, texture mappings, lighting effects etc that it does not require any hard core code to create fancy 3D worlds and flashy effects. Most demos today that win the demo compos at demo parties are winning because of their unique designs and not because of their “code”. Coming up with a new mash-up of effects that is new is more important than to crank out highly optimized Assembler code.

The exception today is probably only the 64KB and even more the 4KB intro competitions, because the limit in size for the entire production requires highly optimized code. The standard API stuff and Vector definitions, textures and music would take up too much space to get results that could make you win in a competition.

OSDM Productions Don’t Compete

OSDM is not about competition and showing off coding skills, so it is okay, if the code is not optimized and bloated, because it still works fine and renders the desired results fluent on today’s computers. Creating and watching an Intro with OSDM is actually more like an interactive trip back on memory lane to embrace good old days of the past, “oldskool” stuff.

This is also one reason, why I am using mostly “classic” and well recognized tunes for the music of my OSDM intros, to reinforce the notion of “oldskool” and past glory. Not that there is no other music that I could use instead. There are plenty of old tracks by my buddy’s from SAC that were never used for an Intro or Demo as they were intended while just ending up as another tune in one of our SAC Artpack releases instead. So it was and is a conscious choice of mine. I hope to bring back memories… good ones I hope.

I also add a new touch and personal flavor to it. My own stuff. Some stuff I only do to show off what I can do with OSDM to impress my buddies from the OSDM fan community who might start wondering how I did this or that with OSDM. OSDM is not written in perfect code and you can get very unexpected results when you turn on all the knobs and switches when you are creating effects combinations. Some of it is hard to impossible to predict and makes things IMO also more interesting. It’s not a coder contest!

Creating Real Cracktros With OSDM

Some of the intros I created with the intention to be used as real release cracktros and I ask the question: “Why Not?”. Sure, I could have it coded or probably even could code it myself. No big deal. As I said earlier, I don’t have to produce hard core code to get the desired results. Generic routines, libraries and code will do just fine. What is the difference really to what you do with OSDM? It is also just a graphical interface around an effects library that was written by another dude for Pure Basic, plus some supporting tools.

You don’t even have to use the interface really. You could just do everything in the preferences file, which is an .INI text file to define what you like and then only use OSDM to compile the final executable. It’s just like a wrapper; a wrapper that helps folks who do not consider themselves to be a “coder”, like me. I remember when I created designs for intros that were never coded, because of the lazy or incapable programmer, sometimes even an animation with a 2D animator program like Autodesk Animator Pro or Deluxe Paint Animation to illustrate what I want it to look like. Now I can do it myself. I am “Geek” enough to figure out how OSDM works, which is not so easy really, because its interface defies all standards of “usability” and “user friendliness”.

Times Changed, Things Changed

I sure understand where the negative attitude (mostly from coders) towards OSDM comes from. I was the same years back. I remember the Humble Guys Intro Maker 2.0 for example. It bothered me too back then in what was it 1992 or 1993? Yeah, I created an Intro with it once, a Fake one, for a lame release under a fake group, which was real, but too lame to release under the name of any of the groups I was running or a member of.

Times changed though and the reasons behind tools like OSDM also.

See For Yourself

Have a look at my Megatro 2009 Intros Pack (11 MB ZIP), which includes 28 Intros that I created with OSDM. You must admit that they are not too bad, if you try to forget about coding for the moment. Oh, the menu system for the release was programmed by myself in Pure Basic by the way. Nothing fancy, but the generic code I mentioned before. It was an afternoons worth of time to do it from scratch and my first program ever in that programming language.. go figure. OSDM has a feature to produce “Megademos” like my Megapack, but I did not use it, because of some shortcomings that were impossible for me to work around and at the same time unacceptable to use as is for my release.

I’d like to hear other folks point of view, arguments, opinions and comments. You can do so also anonymously, if you don’t want to reveal your name or scene handle in the comments section below.

Cheers!

Carsten aka Roy/SAC

Labels: ,

Batch MS DOS ASCII to Web Converter Script

A little script that converts MS DOS ASCII files, such as NFO's  or FILE_ID.DIZ text files (Code Page 437, USA) to Unicode  and HTML encoded files that can be used to display the ASCII art, specifically the "High ASCII" or block ASCII art on a web site. The script is written in VBScript, but the release package also includes a Windows executable, which is the VBScript converted via VBSEdit by Adersoft.

I used the same script to prepare the ASCIIs in my text art galleries on my web site, such as:

just to name a few.

NOTE: An Updated Version of the Script is also available now!

You can download the script here:   ROY-BATCHCONVERT-ASCII2WEB.ZIP (555 KB)

For example the top logo of this NFO file, which is in DOS ASCII Format and looks like this:


───────── ▄ ▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄ ▄▄▄ ▄ ▄▄▄ ▄▄▄▄▄ ▄ ─────────
·R·E·L·.· ▄ ▄▄▄▄ ▀▀▀▀▀▀███ ▀▀▀▀▀▀▀▀███ █ ███ ▀ ███ ▄▄▄▄ ▄ ·2·0·0·9·
─────────── ▄ ▄▄▄ ███ ▄▄██▀ █ ███ █ ███ █▄ ▀▀▀▀▀███ ▄▄▄ ▄ ───────────
▄▄ ███ ▄ ███ █ ███▄▄▄▄▄▄▄▄ ▄▄▄▄▄███ ▄▄
▀▀▀ ███ ▀ ▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀


would be converted to the following;

&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472; &#9604; &#9604;&#9604;&#9604;&#9604; &#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;   &#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;  &#9604; &#9604;&#9604;&#9604; &#9604; &#9604;&#9604;&#9604; &#9604;&#9604;&#9604;&#9604;&#9604; &#9604; &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;
&middot;R&middot;E&middot;L&middot;.&middot;  &#9604; &#9604;&#9604;&#9604;&#9604; &#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9608;&#9608;&#9608; &#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9608;&#9608;&#9608; &#9608; &#9608;&#9608;&#9608; &#9600; &#9608;&#9608;&#9608; &#9604;&#9604;&#9604;&#9604; &#9604;  &middot;2&middot;0&middot;0&middot;9&middot;
&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472; &#9604; &#9604;&#9604;&#9604; &#9608;&#9608;&#9608; &#9604;&#9604;&#9608;&#9608;&#9600; &#9608; &#9608;&#9608;&#9608; &#9608; &#9608;&#9608;&#9608; &#9608;&#9604; &#9600;&#9600;&#9600;&#9600;&#9600;&#9608;&#9608;&#9608; &#9604;&#9604;&#9604; &#9604; &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;
               &#9604;&#9604; &#9608;&#9608;&#9608; &#9604; &#9608;&#9608;&#9608; &#9608; &#9608;&#9608;&#9608;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;  &#9604;&#9604;&#9604;&#9604;&#9604;&#9608;&#9608;&#9608; &#9604;&#9604;
                  &#9600;&#9600;&#9600;   &#9608;&#9608;&#9608; &#9600;  &#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;  &#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;

Note: I included the release ZIP archive are the files roy.asc and roy.web as examples also.

It would look just like the ASCII above the blue code, if you use it properly in your HTML page.

The Web encoded ASCII does not include <BR> Tags for the line-breaks. You have to add those manually or do what I do on my web site and enclose the code in <PRE> </PRE> tags, which preserves the line-breaks within the enclosed text.

Since the result is Unicode and not DOS ASCII anymore, you can use any mono-space font to display the ASCII somewhat correctly. You won't get a 100% accurate result anyway, because the old MS DOS font set is not part of Windows anymore. What you can get is only a close approximation. I use on my web site the font "Lucida Console", which seems to be installed on many machines. If the Windows of the user who visits your page with the ASCII for example does not have that font installed, Windows will automatically pick another font that comes close. I use the following CSS formatting for the PRE tags where I show ASCIIs. 

 


   1: pre {
   2:    background-color:#000;
   3:    color:#FFF;
   4:    display:block;
   5:    font-family:"Lucida Console", monospace;
   6:    font-size:9pt;
   7:    line-height:12px;
   8:    padding:10px;
   9:    text-align:left;
  10:  } 

If the PRE Tag is also used for something else on your web site then you can also define it for a specific class selector like


   1: pre.asciiart {
   2: ...
   3: } 

You would then also have to extend the PRE HTML tag like this:


   1: <PRE class=asciiart>
   2: ...
   3: </PRE> 

The script is designed to convert all files with a specified extension (.ASC by default) to web ready files with a new extension (.WEB by default, but you could also make it .HTML or whatever).

There are two additional options, where I recommend to use the defaults (which is "yes").

The first one is "Sanitize?"


What that does, is removing ASCII characters with an ASCII code smaller than 32, which are special control characters that cannot be printed anyway, with 3 exceptions, chr(10) = line-feed, chr(13) = carriage-return and chr(9) = tab. LF and CR remain unchanged. Tab characters will be converted to 8 spaces, which is the default MS DOS tab-stop.


The second option is "HTML Encode?", which means that all non-US-ASCII characters (the 7 bit ASCII codes) will be converted to HTML codes like &#XXX;. Also standard ASCII characters that could be misinterpreted by HTML or DHTML and XML are also encoded, like the " becomes &quot;, & becomes &amp;, < becomes &lt; and > becomes &gt; etc.


Part of this package is the image "Batch-ASCII-2-Web-Steps.jpg", which shows screenshots of all the steps where the script goes through.

You can download the script here:   ROY-BATCHCONVERT-ASCII2WEB.ZIP (555 KB)

Batch-ASCII-2-Web-Steps

You can download the script here:   ROY-BATCHCONVERT-ASCII2WEB.ZIP (555 KB)

Enjoy!
Carsten aka Roy/SAC

PS. This script is freeware. Do with it whatever you like, except selling it. You can use it free, copy it, share it, even modify it if you like to. You are using it at your own risk. You cannot make me liable for any damage or loss of data that might results directly or indirectly because of the use of my script.

Batch-ASCII-2-Web-BeforeAfter

Labels: , ,

File Processing Scripts Collection V1.0

Here is a collection of useful DOS BATCH and VBSCRIPT scripts for processing, moving, sorting of files.

The code for all scripts can be downloaded in a single ZIP file called: Roy-FileProcScripts.zip

The ZIP archive also contains a nice intro for RoySAC.com, which I recommend to check out :).

ImageFilesSort2Dirs.bat

IMAGES Cleanup/Sorting Batch Script

  1. looks for IMAGE files in current directory  (Extensions JPG, PNG, GIF, BMP, LBM, TGA, PCX, SVG, TIF, IFF)
  2. looks for "-" in file name (assumed to be  the separator between Artist Name and Image Title)
  3. parses string before first "-", trims trailing spaces
  4. checks if directory with that name exists
        4.1 If not, it creates it (artist name)
  5. moves all image files of the artist into the artist dir
   1: @echo off
   2: :: -------------------------------------------------------
   3: :: IMAGES Cleanup/Sorting Batch Script
   4: :: ------------------------------------------------------- 
   5: :: 1. looks for IMAGE files in current directory
   6: :: (Extensions JPG, PNG, GIF, BMP, LBM, TGA, PCX, SVG, TIF, IFF)
   7: :: 2. looks for "-" in file name (assumed to be 
   8: ::    the separator between Artist Name and Image Title)
   9: :: 3. parses string before first "-", trims trailing spaces
  10: :: 4. checks if directory with that name exists
  11: ::   4.1 If not, it creates it (artist name)
  12: :: 5. moves all image files of the artist into the artist dir
  13: :: 
  14: :: Batch Script by Carsten Cumbrowski aka Roy/SAC
  15: :: visit http://www.roysac.com
  16:  
  17:  
  18: setlocal enabledelayedexpansion
  19: CLS
  20: SET DC=DIR /A-D /ON /B
  21: SET EXT=JPG PNG GIF BMP LBM TGA PCX SVG TIF IFF
  22:  
  23: for %%f in (%EXT%) DO SET "DS=!DS!^^&%DC% *.%%f 2^^>NUL"
  24: SET "DS=%DS:~2%"
  25:  
  26: ::only list files with IMAGE extension, exclude directories
  27: for /f "tokens=*" %%A in ('%DS%') do (
  28:  if NOT "%%A"=="File Not Found" (
  29:    call :PERFACTION "%%~A%"
  30:  )
  31: )
  32: echo.
  33: echo Done!
  34: echo.
  35: pause
  36: goto :EOF
  37:  
  38:  
  39: :PERFACTION
  40: ::look for dash in file name, parse str before dash
  41: for /F "tokens=1 delims=-" %%B in ("%~1") do (
  42: ::trim trailing spaces from parsed string  
  43:     set str=%%~B%
  44:     for /l %%a in (1,1,31) do if "!str:~-1!"==" " set str=!str:~0,-1!
  45: )
  46: call :PROCFILE "%str%"
  47: goto :EOF
  48:  
  49:  
  50: :PROCFILE
  51: ::check if directory exists and move file(s)
  52: set f2="%~1"
  53: if {%~x1}=={} (
  54:    echo %f2%
  55:    if NOT exist %f2%  MD %f2%
  56:    FOR %%f in (%EXT%) DO MOVE "%~1*-*.%%f" %f2% 2>NUL
  57: )
  58: goto :EOF
  59:  
  60:  

MoveDirsToAlphaSub.bat


MOVE Subfolders and their content (including their subdirectories) to Destination Folder by First Letter of the Subfolder Name. I created this batch script to be able to sort content that I had in sub directories sorted by group names to an additional sub directory level by letter. I only needed the script to move the files in the sub directory itself, not worrying about additional sub directories that the folder might contains, but I extended the script to move those over as well. Here is an illustration of what the script does, using the example of mod tracker files in sub directories by group name.

Source:
   Ackerlight 
        Ackerlight1.mod
    Backlash
         Backlash1.mod

The script moves everything to a target that will look like the following:

            A         
               Ackerlight 
                  Ackerlight1.mod
            B
               Backlash
                   Backlash1.mod

USAGE of the script:
MOVEDIRSTOALPHASUB.BAT  [SOURCEDIR]  [DESTDIR]
 
[SOURCEDIR] - Optional - Source Directory
[DESTDIR]   - Optional - Destination Directory

   1: @ECHO OFF
   2: CLS
   3: REM ============================================================
   4: REM MOVE Subfolders and their content (including their subdirectories)
   5: REM to Destination Folder by First Letter of the Subfolder Name
   6: REM  
   7: REM Source:
   8: REM   axxxxxx     DIR
   9: REM     xxxxxxx   DIR
  10: REM       yyyyyyy FILE
  11: REM     yyyyyyy   FILE
  12: REM
  13: REM Destination:
  14: REM   A             DIR
  15: REM     axxxxxx     DIR
  16: REM       xxxxxxx   DIR 
  17: REM         yyyyyyy FILE
  18: REM       yyyyyyy   FILE
  19: REM 
  20: REM USAGE:
  21: REM MOVEDIRSTOALPHASUB.BAT  [SOURCEDIR]  [DESTDIR]
  22: REM 
  23: REM [SOURCEDIR] - Optional - Source Directory
  24: REM [DESTDIR]   - Optional - Destination Directory
  25: REM
  26: REM Written by Roy/SAC in 2009
  27: REM 
  28: REM ============================================================
  29:  
  30: REM Backup original directory location
  31: SET ORG=%CD%
  32:  
  33: REM If no source directory is specified
  34: REM use current directory location as source
  35: IF "%~1"=="" (
  36:   SET SROOT=%CD%
  37: ) ELSE (
  38:   SET SROOT=%~1
  39: )
  40: REM If no destination directory is specified
  41: REM use current directory as destination
  42: IF "%~2"=="" (
  43:   SET DROOT=%CD%
  44: ) ELSE (
  45:   SET DROOT=%~2
  46: )
  47:  
  48:  
  49: REM Goto Source Directory
  50: CD /D "%SROOT%"
  51:  
  52: REM Get all Sub-Folders in Source Directory
  53: for /f "tokens=*" %%A in ('DIR /ON /B /AD *.* 2^>NUL') DO CALL :ACTION "%%~A"
  54:  
  55: REM Return to Original Directory
  56: CD /D "%ORG%"
  57: ECHO ===============================================
  58: ECHO DONE! Window Closes Automatically in 10 Seconds
  59: ECHO ===============================================
  60: GOTO :ENDOFAPP
  61:  
  62: REM ===========================================================
  63: REM ACTION - Folder Processing
  64: REM ===========================================================
  65: :ACTION
  66: REM Extract Folder Name
  67: SET STR1="%~nx1"
  68:  
  69: REM Extract First Letter of Folder Name
  70: SET "STR=%STR1:~1,1%"
  71:  
  72: REM Convert Letter to Upper Case
  73: for %%X in ("a=A" "b=B" "c=C" "d=D" "e=E" "f=F" "g=G" "h=H" "i=I"
  74:             "j=J" "k=K" "l=L" "m=M" "n=N" "o=O" "p=P" "q=Q" "r=R"
  75:             "s=S" "t=T" "u=U" "v=V" "w=W" "x=X" "y=Y" "z=Z") do (
  76:     call set "STR=%%STR:%%~X%%"
  77: )
  78:  
  79: REM Jump to destination directory
  80: CD /D "%DROOT%"
  81:  
  82: REM If letter directory does not exist, create it
  83: IF NOT exist "%STR%" MD "%STR%"
  84:  
  85: REM Jump into letter directory
  86: CD /D "%DROOT%\%STR%"
  87:  
  88: REM If target directory does not exist, create it
  89: IF NOT exist "%~nx1" MD "%~nx1"
  90:  
  91: REM copy all files and subfolders from source to target directory
  92: XCOPY /S /E "%SROOT%\%~nx1\*.*" "%DROOT%\%STR%\%~nx1" 2>NUL 
  93:  
  94: REM Jump to source directory
  95: CD /D "%SROOT%\%~nx1"
  96:  
  97: REM Delete all files in source directory
  98: DEL /S /Q *.* 2>NUL
  99:  
 100: REM Jump to root source directory
 101: CD /D "%SROOT%"
 102:  
 103: REM Remove source directory and its sub directories
 104: RMDIR /S /Q "%~nx1" 2>NUL
 105: GOTO :EOF
 106:  
 107:  
 108: REM ===========================================================
 109: REM End of App - Script closes automatically after 10 seconds
 110: REM ===========================================================
 111: :ENDOFAPP
 112:  
 113: FOR /l %%a in (10,-1,1) do (
 114:   TITLE %title% -- closing in %%as&ping -n 2 -w 1 127.0.0.1>NUL
 115: )
 116: TITLE Press any key to close the application&ECHO.

MoveToAlphabetSubFolders.bat


This script simply moves files in a folder to sub folders with the first letter as name. For example, if you have a folder with the following files:

Ackerlight1.mod
Backlash1.mod

The script will move them to subfolders like this:

A
   Ackerlight1.mod
B
   Backlash1.mod

Note: this version of the script overwrites files with the same name in the destination folder. Check out the script below, which does the same as this script, but does not overwrite files in the destination directory.


   1: @ECHO OFF
   2: CLS
   3: IF NOT {%1}=={} (
   4:   CD /d "%~1"
   5: )
   6: ECHO Processing Folder: %CD%
   7:  
   8: FOR %%f IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z REST) DO 
       CALL :MoveFiles "%%f"
   9: GOTO :EOF
  10:  
  11: :MoveFiles
  12: ECHO Processing: %1 ...
  13: IF %1=="REST" Goto :MoveRest
  14: IF NOT EXIST %1 MD %1
  15: REM FOR %%f IN (%1*) DO MOVE "%%f" %1>NUL
  16: move %1* %1\ >NUL 2>&1
  17: GOTO :EOF
  18:  
  19: :MoveRest
  20: IF NOT EXIST 0-9 MD 0-9
  21: MOVE * 0-9>NUL
  22: GOTO :EOF

MoveToAlphabetSubFoldersWithoutOverwrite.bat


This script does the same as the one above with the difference that this script does not overwrite files with the same name that already exist in the destination directory.


   1: @ECHO OFF
   2: CLS
   3: IF NOT {%1}=={} (
   4:   CD /d "%~1"
   5: )
   6: ECHO Processing Folder: %CD%
   7: ECHO ------------------------------------------------------------------------------------------
   8: FOR %%f IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z REST) DO 
        CALL :MoveFiles "%%f"
   9: ECHO ------------------------------------------------------------------------------------------
  10: ECHO Done!
  11: ECHO.
  12: PAUSE
  13: GOTO :EOF
  14:  
  15: :MoveFiles
  16: ECHO Processing: %1 ...
  17: IF %1=="REST" Goto :MoveRest
  18: IF NOT EXIST %1 MD %1
  19: REM FOR %%f IN (%1*) DO MOVE "%%f" %1\ >NUL 2>&1
  20: Echo N|move /-Y %1* %1\ >NUL 2>&1
  21: RmDir "%1">NUL 2>&1
  22: GOTO :EOF
  23:  
  24: :MoveFiles2
  25: Echo N|move /-Y %1* 0-9\ >NUL 2>&1
  26: GOTO :EOF
  27:  
  28: :MoveRest
  29: IF NOT EXIST 0-9 MD 0-9
  30: FOR %%a IN (0 1 2 3 4 5 6 7 8 9 # $ % ~ ! ^ & ( ) - _ + = [ ] { } ' ; , `) DO 
       CALL :MoveFiles2 "%%a"
  31: RmDir "0-9">NUL 2>&1
  32: GOTO :EOF

MoveToSubFoldersByExt.bat


This script requires also the .VBS script “Extensions.vbs” (see below).

It sorts files away into sub directories with the extension name. I used it to sort away tracker modules by file format. For example:

   Ackerlight1.mod
   Backlash1.xm

Would be moved into folders like this:

   MOD
       Ackerlight1.mod

   XM
       Backlash1.xm


   1: @ECHO OFF
   2: CLS
   3: IF NOT {%1}=={} (
   4:   CD /d "%~1"
   5: )
   6: Set WorkP=%CD%
   7: ECHO Processing Folder: %WorkP%!
   8: Call :GetScrPath "extensions.vbs"
   9: Echo [%CmdL%]
  10: FOR /F %%f IN ('%CmdL%') DO CALL :MoveFiles "%%f"
  11: Call :MoveRest
  12: GOTO :EOF
  13:  
  14: :MoveFiles
  15: IF NOT EXIST "%~1" MD "%~1"
  16: FOR %%f IN (*.%~1) DO MOVE "%%f" "%~1\">NUL 2>&1
  17: GOTO :EOF
  18:  
  19: :MoveRest
  20: IF NOT EXIST "NoExtension" MD "NoExtension"
  21: MOVE "*." "NoExtension\">NUL 2>&1
  22: RmDir "NoExtension">NUL 2>&1
  23: GOTO :EOF
  24:  
  25:  
  26: :GetScrPath
  27: Set CmdL=cscript.exe /nologo "%~$PATH:1" "%WorkP%"
  28: GOTO :EOF

extensions.vbs


This is a supporting script for the batch script “MoveToSubFoldersByExt.bat”. It returns a list of all file extensions for the files in the provided directory location.



   1: Dim objCmdlineArguments: Set objCmdlineArguments = Wscript.Arguments
   2: Dim oFso: Set oFso = CreateObject("Scripting.FileSystemObject")
   3: Dim oFile, oFolder, sPath
   4: Dim sExt, a, aExt
   5: Dim sExtensions: sExtensions=""
   6:  
   7:  
   8: If objCmdlineArguments.Unnamed.Count > 0 then
   9:    sPath = objCmdlineArguments.Unnamed(0)
  10:    If Not oFso.FolderExists(sPath) Then
  11:       sPath = oFso.GetAbsolutePathName(".")
  12:    End If
  13: Else
  14:    sPath = oFso.GetAbsolutePathName(".")
  15: End If
  16:  
  17: Set oFolder = oFSO.GetFolder(sPath)
  18:  
  19: 'Process Files in Folder
  20: For each oFile in oFolder.Files
  21:    sExt = LCase(oFso.GetExtensionName(oFile.Name))
  22:    If sExt <> "" And InStr(1,sExtensions,sExt & "|",1) = 0 Then
  23:       sExtensions = sExtensions & sExt & "|"
  24:    End If
  25: Next
  26:  
  27: If sExtensions <> "" Then
  28:   sExtensions = Left(sExtensions,Len(sExtensions)-1)
  29:   If InStr(1,sExtensions,"|",1) > 0 Then
  30:     aExt = Split(sExtensions,"|")
  31:     sExtensions=""
  32:     QSort aExt, LBound(aExt), UBound(aExt)   
  33:     For a = 0 To UBound(aExt) 
  34:       If aExt(a) <> "" Then
  35:         sExtensions = Join(aExt,vbcrlf)
  36:        End If
  37:     Next
  38:   End If
  39:   WScript.Echo sExtensions   
  40: End If
  41:   
  42: Set oFolder = Nothing
  43: Set ofso = Nothing
  44:  
  45:  
  46: Sub QSort(aData, iaDataMin, iaDataMax)
  47:   Dim Temp 
  48:   Dim Buffer 
  49:   Dim iaDataFirst
  50:   Dim iaDataLast
  51:   Dim iaDataMid
  52:  
  53:   iaDataFirst = iaDataMin          ' Start current low and high at actual low/high
  54:   iaDataLast = iaDataMax
  55:  
  56:   If iaDataMax <= iaDataMin Then Exit Sub        ' Error!  
  57:   iaDataMid = (iaDataMin + iaDataMax) \ 2   ' Find the approx midpoint of the array
  58:  
  59:   Temp = aData(iaDataMid)                 ' Pick as a starting point (we are making
  60:                                           ' an assumption that the data *might* be
  61:                                           ' in semi-sorted order already!
  62:  
  63:   Do While (iaDataFirst <= iaDataLast)
  64:       'Comparison here
  65:         Do While aData(iaDataFirst) < Temp
  66:           iaDataFirst = iaDataFirst + 1
  67:           If iaDataFirst = iaDataMax Then Exit Do
  68:       Loop
  69:  
  70:       'Comparison here
  71:        Do While Temp < aData(iaDataLast)
  72:           iaDataLast = iaDataLast - 1
  73:           If iaDataLast = iaDataMin Then Exit Do
  74:       Loop
  75:  
  76:       If (iaDataFirst <= iaDataLast) Then        ' if low is <= high then swap
  77:           Buffer = aData(iaDataFirst)
  78:           aData(iaDataFirst) = aData(iaDataLast)
  79:           aData(iaDataLast) = Buffer
  80:           iaDataFirst = iaDataFirst + 1  
  81:           iaDataLast = iaDataLast - 1 
  82:       End If
  83:   Loop
  84:  
  85:   If iaDataMin < iaDataLast Then                 ' Recurse if necessary
  86:       QSort aData, iaDataMin, iaDataLast
  87:   End If
  88:  
  89:   If iaDataFirst < iaDataMax Then                ' Recurse if necessary
  90:       QSort aData, iaDataFirst, iaDataMax
  91:   End If
  92:  
  93: End Sub 'QSort

MP3FileSort2Dirs.bat


I published this batch script already on my blog. It sorts MP3 files away to sub directories by artist name, assuming that the MP3 files start with the artist name followed by a “-“ character (then followed by the song title for example).

   1: @echo off
   2: :: -------------------------------------------------------
   3: :: MP3 Cleanup/Sorting Batch Script
   4: :: ------------------------------------------------------- 
   5: :: 1. looks for MP3 files in current directory
   6: :: 2. looks for "-" in file name (assumed to be 
   7: ::    the separator between Artist Name and Song Title)
   8: :: 3. parses string before first "-", trims trailing spaces
   9: :: 4. checks if directory with that name exists
  10: ::   4.1 If not, it creates it (artist name)
  11: :: 5. moves file into the directory
  12: :: 
  13: :: Batch Script by Carsten Cumbrowski aka Roy/SAC
  14: :: visit http://www.roysac.com
  15:  
  16: setlocal enabledelayedexpansion
  17: cls
  18: ::only list files with extension MP3, exclude directories
  19: for /f "tokens=*" %%A in ('DIR /A-D /ON /B "*.MP3"^|SORT /REVERSE') do (
  20:   call :PERFACTION "%%~A%"
  21: )
  22: echo.
  23: echo Done!
  24: echo.
  25: pause
  26: goto :EOF
  27:  
  28:  
  29: :PERFACTION
  30: ::look for dash in file name, parse str before dash
  31: for /F "tokens=1 delims=-" %%B in ("%~1") do (
  32: ::trim trailing spaces from parsed string  
  33:     set str=%%~B%
  34:     for /l %%a in (1,1,31) do if "!str:~-1!"==" " set str=!str:~0,-1!
  35: )
  36: call :PROCFILE "%str%"
  37: goto :EOF
  38:  
  39:  
  40: :PROCFILE
  41: ::check of directory exists and move file
  42: set f2="%~1"
  43: if {%~x1}=={} (
  44:    echo %f2%
  45:    if NOT exist %f2%  MD %f2%
  46:    move "%~1*.MP3" %f2%
  47: )
  48: goto :EOF
  49:  
  50:  

MoveFilesAutoRenDup.vbs


This script copies all files from a source directory, including its subfolders to a destination directory without any subfolders. Since the subfolders of the source might contain files with the same name (such as file_id.diz files), this script automatically renames those files, appending [2] to the first duplicate, [3] to the next and so on.


   1: Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
   2: Dim arguments: Set arguments = Wscript.arguments
   3: Const ForAppending = 8, ForReading = 1, ForWriting = 2
   4:  
   5: Dim sTo
   6: Dim sFrom
   7:  
   8: if arguments.unnamed.count = 0 then
   9:   sFrom = "N*A"
  10:   Do While sFrom <> "" and FSO.FolderExists(sFrom) = false
  11:   sFrom = InputBox("Move All Files and Auto Rename Dupes", _
  12:           "Enter Source Directory: ", fso.GetAbsolutePathName("."))
  13:   Loop
  14:   if sFrom = "" then
  15:      WScript.Quit(1)
  16:   End if
  17: else
  18:   sFrom = arguments.unnamed.Item(0)
  19: end if
  20: if not FSO.FolderExists(sFROM) then
  21:    WScript.Quit(2)
  22: end if
  23:  
  24: if arguments.unnamed.count <= 1 then
  25:   sTo="N*A" 
  26:   Do While sTo <> "" and FSO.FolderExists(sTo) = false
  27:   sTo = InputBox("Move All Files and Auto Rename Dupes", _
  28:         "Source Directory: " & vbcrlf & sFrom & vbcrlf & _
  29:         "Enter Destination Directory: ", FSO.GetParentFolderName(sFrom))
  30:   Loop
  31:   if sTo = "" then
  32:      WScript.Quit(1)
  33:   end if
  34: else
  35:   sTo = arguments.unnamed.Item(1)
  36: end if
  37: if not FSO.FolderExists(sTo) then
  38:    WScript.Quit(2)
  39: end if
  40:  
  41:  
  42:  
  43:  
  44: Dim iFilesCount: iFilesCount  = 1
  45: Dim  sSrc, sDest, DC, sExt, sBase, oFOld
  46:  
  47: Set oFold = FSO.GetFolder(sFrom)
  48:  
  49: if lcase(sTo) <> lcase(sFrom) then
  50:   ShowFiles oFold.Path
  51: end if
  52:  
  53: ShowSubFolders oFold
  54:  
  55: Wscript.echo iFilesCount  & " files moved"
  56:  
  57:  
  58: '========================================================
  59:  
  60: Sub ShowSubFolders(Folder)
  61: Dim SubFolder
  62:  
  63:     For Each Subfolder in Folder.SubFolders
  64:           ShowFiles Subfolder.Path
  65:           ShowSubFolders Subfolder
  66:     Next
  67: End Sub
  68:  
  69: '----------------------------------------
  70: Sub ShowFiles(sPath)
  71: Dim oFile, oFolder
  72:  
  73:   iFolderCount = iFolderCount + 1
  74:   Set oFolder = FSO.GetFolder(sPath)
  75:   iFilesCount = iFilesCount + oFolder.Files.count
  76:  
  77:   For each oFile in oFolder.Files
  78:       sDest = FSO.BuildPath(sTo, oFile.Name)
  79:       sExt = FSO.GetExtensionName(sDest)
  80:       sBase = left(oFile.Name,len(oFile.name)-len(sExt)-1)
  81:       DC = 1
  82:       Do While FSO.FileExists(sDest) = true
  83: '           Wscript.sleep 500
  84:            DC = DC + 1
  85:            sDest = FSO.BuildPath(sTo, sBase & "[" & DC & "]." &  sExt)
  86:       Loop
  87:       sSrc = FSO.GetAbsolutePathName(FSO.BuildPath(sPath,oFile.Name))
  88:  
  89:       FSO.MoveFile sSrc, sDest
  90:  
  91:   Next
  92: End Sub
  93:  
  94:  

CleanUp.bat


I published this script also already. It simply checks all subdirectories of the provided path and removes all those that are empty (have no files).


   1: REM CleanUp.bat
   2: @echo off
   3: set Folder="%~1"
   4: if %Folder%=="" @echo Syntax CleanUp Folder&goto :EOF
   5: if not exist %Folder% @echo Syntax CleanUp Folder - %Folder% not found.&goto :EOF
   6: CD /D %Folder%
   7: Echo Processing Folder: %Folder%
   8: setlocal
   9: :: REMOVE EMPTY SUBFOLDERS
  10: for /f "tokens=*" %%A in ('dir /ad /s /b *.* ^|Sort /Reverse') do (
  11:  RmDir "%%A" 2>NUL
  12: )
  13: CD ..
  14: :: REMOVE FOLDER, IF EMPTY
  15: RmDir %Folder% 2>NUL
  16: endlocal

All scripts are freeware, but you are using them at your own risk. I take no responsibility for any damages or losses that result directly or indirectly from the use of those scripts.


Again, you can download the source code of all scripts in this post here: Roy-FileProcScripts.zip


Cheers!


Carsten aka Roy/SAC

Labels:

RoboForm 10% off with code CORTS