Search This Blog

2006-10-23

exec.cmd by Fred Stluka

@echo off
rem -------------------------------------------------------------------------
rem Batch file to execute a command on a set of files.
rem -------------------------------------------------------------------------
rem Revision History:
rem 6/5/1982 Fred Stluka
rem - Initial version for IBM VMS/CMS (FILELIST EXEC)
rem 10/12/1985 Fred Stluka
rem - Initial version for DEC VAX/VMS
rem 10/4/1988 Fred Stluka
rem - Initial version for Unix (find -exec, find -ok)
rem 12/2/1998 Fred Stluka
rem - Initial version for Windows NT
rem 2/3/2005 Fred Stluka
rem - Execute command via "call" in case it's a BAT file.
rem - Expand filenames to fully qualified paths via ~f.
rem - Notes explaining FOR command syntax.
rem $Log$
rem -------------------------------------------------------------------------

rem Turn echo back on if ECHO environment variable equals ON.
if not "%ECHO%"=="" echo %ECHO%

if "%1" == "" goto USAGE
if "%1" == "-?" goto USAGE
if "%1" == "/?" goto USAGE
if not "%OS%" == "Windows_NT" goto NOT_NT

rem Accumulate the DIR options and file specs (everything until "DO").
set DIR_PARAMS=
:GET_DIR_PARAMS
for %%i in (do DO dO Do) do if "%1"=="%%i" goto DO_FOUND
if "%1"=="" goto NO_DO_FOUND
set DIR_PARAMS=%DIR_PARAMS% %1
shift
goto GET_DIR_PARAMS
:DO_FOUND
shift

rem Run the command on the files.
rem
rem Notes:
rem - The /f switch causes FOR to parse each line in a file.
rem - The "Tokens=*" option causes an entire line of the file to be handled
rem at once. (Not required, since this is the default behavior.)
rem - Percent signs must be doubled on FOR loop variables inside BAT files.
rem - The apostrophes cause the DIR command to be evaluated to produce the
rem "file" to be parsed by /f.
rem - The ~f modifier expands the filename in %i to a fully qualified path.
rem - For more info, type: HELP FOR
rem
echo DIR parameters: %DIR_PARAMS%
echo Files to be processed:
for /f "Tokens=*" %%i in ('dir %DIR_PARAMS% /a-d /b') do echo "%%~fi"
rem Note: "echo." echoes a blank line. "echo ." would echo a dot.
echo.
echo Hit Ctrl-C to stop or any other key to continue:
:: pause > nul
for /f "Tokens=*" %%i in ('dir %DIR_PARAMS% /a-d /b') do call :EXECUTE %1 %2 %3 %4 %5 %6 %7 %8 "%%~fi"
goto EXIT

:EXECUTE
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
rem
rem Note: The keyword "call" is needed here. Otherwise, if the first parameter
rem is the name of a BAT file, things get confused. The BAT file is not
rem executed, and the following error is reported:
rem The system cannot find the batch label specified - EXECUTE
rem
call %1 %2 %3 %4 %5 %6 %7 %8 %9
goto EXIT

:NOT_NT
echo Sorry. %0 only runs under Windows NT, 2000, XP, etc. Not 95, 98, ME.
goto EXIT

:NO_DO_FOUND
echo Invalid syntax. Must specify DO.
goto USAGE

:USAGE
echo %0 is a BAT file that executes the specified command on the specified
echo set of files. The files are specified as a set of parameters that would
echo cause the DIR command to select the right set of files.
echo Usage: %0 [dir_params...] DO command
echo Examples: %0 *.* DO type
echo Types all files in the current directory.
echo %0 DO type
echo Types all files in the current directory.
echo %0 /s DO type
echo Types all files in the current directory tree.
echo %0 *.exe DO start /wait /max
echo Runs all EXE files in the current directory, one at a
echo time, waiting for each to finish, in maximized windows.
echo %0 /s /aa c:\*.* DO xcopy /s /m /f
echo Incremental backup. Run with A:\ as the current
echo working directory. Copies all files with archive bit
echo set from the C drive to the current directory tree,
echo clearing the archive bits and echoing the names as
echo the files are copied.
echo %0 /s /a-r DO edit
echo Edit all files that are not readonly in the current
echo directory tree.
goto EXIT

:EXIT

Backup TextPad settings

@echo off

REM This tool makes a complete backup of all your TextPad settings
REM in the Windows Registry.
REM The area of useage is quite wide. You can make custom "workspaces"
REM trough launching different .reg-files. Also, you may set the "prompt for parameters"
REM checkbox in textpad. Also, "Capture output" & "supress until..." sould be checked.
REM
REM In the "Parameters" textfield you can type in the deafult name for a
REM backup. ex: "texpad.reg" or "c:\textpad.reg"
REM
REM As the "initial folder" you can type in a default value, leave it blank or use $FileDir
REM © 2002 Rasmus Andersson [flajm.com / rasmusandersson.com]

REM Dim vars
set KEYPATH=HKEY_CURRENT_USER\Software\Helios\TextPad 4
set BUFILENAME=tps__%date%.reg

REM check for errors
:DOCHECK
if "%BUFILENAME%"=="" goto :REPORTERROR


:DOBACKUP
REG EXPORT "%KEYPATH%" "%BUFILENAME%"



REM Report success
:SUCCESS
echo Registry backup of "%KEYPATH%"
echo successfully saved to "%BUFILENAME%"
goto :ENDBAT


REM reports an error
:REPORTERROR
echo You must specify an output filename for the
echo backup.
echo Example: c:\appbackup.reg, textpad.reg, \\computer\folder\backup.reg


REM Exits and quits
:ENDBAT
EXIT

funcJumper in Textpad (revised)

package funcJumper ;
#!perl

=head1 Copyright

*****************************************
* *
* Copyright (c) 2006, CloinkSoft *
* *
* mailto:Cloink_Friggson@ntlworld.com *
* *
*****************************************

=head1 LineNos - What it does

Interrogates passed filename (appropriately qualified) for it's sub-routine word,
and list each with line-number, especially useful if called from TextPad as a tool
with a "Regexp to match output" of "1", as this allows you to quickly
navigate to a particular function / sub / procedure / whatever match you desire,
by double-clicking the line shown in the Command Results window.

It expects the keyword to be at the beginning of the line, with optional leading spaces,
and it does a case-insensitive match to cater for as many languages as possible.

Note that JavaScript gets special treatment and finds both named functions, and
further methods of those functions, sorting the methods into alphabetical order.

e.g.
function JS_Func(){ null; } // possibly a constructor func for an object
JS_Func.meth1 = function(){ null; } // static meth but caters for .prototyped meths too
lists JS_Func AND JS_Func.method - the latter indented, and a new constructor gets a blank line
before it to help separate one from the next when you have a lot of methods.

I don't program in Java, but I imagine the JS special treatment will apply to that
and many other OO languages too.

=cut


$, = "" ; # between each argument to print ("field" separator)
$\ = "" ; # between each call to print ("record" separator)

my ( $f, $prt, $l, $i, $nuc, $fl, $srch, $js, $t );
@meths; # methods for JS
%mlnos;

format STDOUT =
@>>> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$l, $prt
.

$f = $ARGV[0];

=head2 Specify your file types and search strings here

The search-string is bracketed so you can give a list of possible words

e.g. Oracle PL/SQL
PROCEDURE|FUNCTION

The sub-routine name can be quoted - for me, this allows me to use the perl-script
against my Oracle table-scripts which call a sub-script prior to each table-definition

e.g. Ora script
@TabIni "TABLE_NAME"

=cut

if( $f =~ /\.js$/ ){ # JavaScript
$js = 1;
$srch = 'function' ;
}
elsif( $f =~ /\.p[lm]||cgi$/ ){ # perl
$srch = 'sub';
}
elsif( $f =~ /\.pk[gbdhs]$/ ){ # Oracle packages
$srch = 'PROCEDURE|FUNCTION';
}
elsif( $f =~ /\.tab$/ ){ # Oracle table script
$srch = 'START ~UD.TabIni';
}
else{
die "Unknown file type.";
}

open IN, $f || die "Can't open $f" ;

while( <IN> ){

if( $_ =~ /^\s*($srch)\s+['"]?(\w+)['"]?/i ){ # " # case-insensitive, optional quotes round word, which will rarely be required but doesn't harm to have 'em, and my tab scripts need it

if( $js && $t ){ # switching from major func to another, but not first major func
$i=-1;
map { $l = $mlnos{$_}; $prt = " $_"; write; }
sort { return( uc $a lt uc $b ? -1 : 1 ) } @meths ;
@meths = ();
@mlnos = ();
print "\n" ; # so don't put a blank line at v top
}

$t = $2;
$l = $.;
$prt = $t;
write;
}

if( $js && $_ =~ /^ *$t\.(prototype\.)?(\w+) *= *function/ ){
push @meths, $2;
$mlnos{$2} = $.;
}
}

close IN;

1;

How-to create shortcuts on Windows with perl

# This code creates a shortcut.

# ---------------------------------------------------------------
# Adapted from VBScript code contained in the book:
# "Windows Server Cookbook" by Robbie Allen
# ISBN: 0-596-00633-0
# ---------------------------------------------------------------

use Win32::OLE;
$Win32::OLE::Warn = 3;

$objWSHShell = Win32::OLE->new('WScript.Shell');

# Pass the path to the shortcut
$objSC = $objWSHShell->CreateShortcut('C:\\Documents and Settings\\yogeorgi\\Desktop\\Shortcut to settings.lnk');

# Description - Description of the shortcut
$objSC->{Description} = 'Shortcut to MyLog settings.txt';

# HotKey – hot key sequence to launch the shortcut
#if one puts space between the + and the ALT SHIFT etc. this raizes exception
$objSC->{HotKey} = 'CTRL+ALT+SHIFT+S';

# IconLocation – Path of icon to use for the shortcut file
$objSC->{IconLocation} = 'notepad.exe, 0';
# 0 is the index

# TargetPath = Path to source file or folder
$objSC->{TargetPath} = 'C:\\Temp\\QARunpack\\settings.txt';

# Arguments – Any additional parameters to pass to TargetPath
$objSC->{Arguments} = 'c:\\mylog.txt';

# WindowStyle – Type of window to create
$objSC->{WindowStyle} = 1;
# 1 = normal; 3 = maximize window; 7 = minimize

# WorkingDirectory – Location of the working directory for the source app
$objSC->{WorkingDirectory} = 'c:\\Temp\\QARunpack';
$objSC->Save();
print "Shortcut to mylog created\n";

2006-10-17

compile a perl project using TextPad

Ok , the next idea would be to compile a whole perl project with the help of the exec.bat by Fred Stluka ...

With the following setting you go recursively and you check each perl file for syntax errors and if found one could jump to it ... (wow this should be submitted to the tips section ; )
so:
1. Create a registry file with the following content and add it to your registry (The number after Tools should be the next number of the command in your Tools menu .. .
#===============COPY_PASTE_START
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Helios\TextPad 4\Tools\30]
"Properties"=hex:01,00,00,00,69,80,00,00,e8,49,00,00
"MenuText"="exec"
"Command"="cmd.exe"
"Parameters"="exec *.pl *.pm *.cgi /s /b do perl -wc "
"Folder"="$FileDir"
"RE"="^.+at (.+) line ([0-9]+)[.,]?"

#===============COPY_PASTE_STOP

and the following exec.bat in your path
#===============COPY_PASTE_START
@echo off
rem -------------------------------------------------------------------------
rem Batch file to execute a command on a set of files.
rem -------------------------------------------------------------------------
rem Revision History:
rem 6/5/1982 Fred Stluka
rem - Initial version for IBM VMS/CMS (FILELIST EXEC)
rem 10/12/1985 Fred Stluka
rem - Initial version for DEC VAX/VMS
rem 10/4/1988 Fred Stluka
rem - Initial version for Unix (find -exec, find -ok)
rem 12/2/1998 Fred Stluka
rem - Initial version for Windows NT
rem 2/3/2005 Fred Stluka
rem - Execute command via "call" in case it's a BAT file.
rem - Expand filenames to fully qualified paths via ~f.
rem - Notes explaining FOR command syntax.
rem $Log$
rem -------------------------------------------------------------------------

rem Turn echo back on if ECHO environment variable equals ON.
if not "%ECHO%"=="" echo %ECHO%

if "%1" == "" goto USAGE
if "%1" == "-?" goto USAGE
if "%1" == "/?" goto USAGE
if not "%OS%" == "Windows_NT" goto NOT_NT

rem Accumulate the DIR options and file specs (everything until "DO").
set DIR_PARAMS=
:GET_DIR_PARAMS
for %%i in (do DO dO Do) do if "%1"=="%%i" goto DO_FOUND
if "%1"=="" goto NO_DO_FOUND
set DIR_PARAMS=%DIR_PARAMS% %1
shift
goto GET_DIR_PARAMS
:DO_FOUND
shift

rem Run the command on the files.
rem
rem Notes:
rem - The /f switch causes FOR to parse each line in a file.
rem - The "Tokens=*" option causes an entire line of the file to be handled
rem at once. (Not required, since this is the default behavior.)
rem - Percent signs must be doubled on FOR loop variables inside BAT files.
rem - The apostrophes cause the DIR command to be evaluated to produce the
rem "file" to be parsed by /f.
rem - The ~f modifier expands the filename in %i to a fully qualified path.
rem - For more info, type: HELP FOR
rem
echo DIR parameters: %DIR_PARAMS%
:: echo Files to be processed:
:: for /f "Tokens=*" %%i in ('dir %DIR_PARAMS% /a-d /b') do echo "%%~fi"
rem Note: "echo." echoes a blank line. "echo ." would echo a dot.
:: echo.
:: echo Hit Ctrl-C to stop or any other key to continue:
:: pause > nul
for /f "Tokens=*" %%i in ('dir %DIR_PARAMS% /a-d /b') do call :EXECUTE %1 %2 %3 %4 %5 %6 %7 %8 "%%~fi"
goto EXIT

:EXECUTE
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
rem
rem Note: The keyword "call" is needed here. Otherwise, if the first parameter
rem is the name of a BAT file, things get confused. The BAT file is not
rem executed, and the following error is reported:
rem The system cannot find the batch label specified - EXECUTE
rem
call %1 %2 %3 %4 %5 %6 %7 %8 %9
goto EXIT

:NOT_NT
echo Sorry. %0 only runs under Windows NT, 2000, XP, etc. Not 95, 98, ME.
goto EXIT

:NO_DO_FOUND
echo Invalid syntax. Must specify DO.
goto USAGE

:USAGE
echo %0 is a BAT file that executes the specified command on the specified
echo set of files. The files are specified as a set of parameters that would
echo cause the DIR command to select the right set of files.
echo Usage: %0 [dir_params...] DO command
echo Examples: %0 *.* DO type
echo Types all files in the current directory.
echo %0 DO type
echo Types all files in the current directory.
echo %0 /s DO type
echo Types all files in the current directory tree.
echo %0 *.exe DO start /wait /max
echo Runs all EXE files in the current directory, one at a
echo time, waiting for each to finish, in maximized windows.
echo %0 /s /aa c:\*.* DO xcopy /s /m /f
echo Incremental backup. Run with A:\ as the current
echo working directory. Copies all files with archive bit
echo set from the C drive to the current directory tree,
echo clearing the archive bits and echoing the names as
echo the files are copied.
echo %0 /s /a-r DO edit
echo Edit all files that are not readonly in the current
echo directory tree.
goto EXIT

:EXIT
#===============COPY_PASTE_STOP

Labels

perl (41) Cheat Sheet (25) how-to (24) windows (14) sql server 2008 (13) linux (12) oracle (12) sql (12) Unix (11) cmd windows batch (10) mssql (10) cmd (9) script (9) textpad (9) netezza (8) sql server 2005 (8) cygwin (7) meta data mssql (7) metadata (7) bash (6) code generation (6) Informatica (5) cheatsheet (5) energy (5) tsql (5) utilities (5) excel (4) future (4) generic (4) git cheat sheet (4) html (4) perl modules (4) programs (4) settings (4) sh (4) shortcuts (4) поуки (4) принципи (4) Focus Fusion (3) Solaris (3) cool programs (3) development (3) economy (3) example (3) freeware (3) fusion (3) logging (3) morphus (3) mssql 2005 (3) nuclear (3) nz (3) parse (3) python (3) sftp (3) sofware development (3) source (3) sqlplus (3) table (3) vim (3) .Net (2) C# (2) China (2) GUI (2) Google (2) GoogleCL (2) Solaris Unix (2) architecture (2) ascii (2) awk (2) batch (2) cas (2) chrome extensions (2) code2html (2) columns (2) configuration (2) conversion (2) duplicates (2) excel shortcuts (2) export (2) file (2) free programs (2) informatica sql repository (2) linux cheat sheet (2) mssql 2008 (2) mysql (2) next big future (2) nsis (2) nz netezza cheat sheet (2) nzsql (2) ora (2) prediction (2) publish (2) release management (2) report (2) security (2) single-click (2) sqlserver 2005 (2) sqlserver 2008 (2) src (2) ssh (2) template (2) tools (2) vba (2) video (2) xlt (2) xml (2) youtube videos (2) *nix (1) .vimrc (1) .virmrc vim settings configs (1) BSD license (1) Bulgaria (1) Dallas (1) Database role (1) Dense plasma focus (1) Deployment (1) ERP (1) ExcelToHtml (1) GD (1) GDP (1) HP-UX (1) Hosting (1) IDEA (1) INC (1) IT general (1) ITIL management bullshit-management (1) IZarc (1) Java Web Start (1) JavaScript anchor html jquery (1) Khan Academy (1) LINUX UNIX BASH AND CYGWIN TIPS AND TRICKS (1) Linux Unix rpm cpio build install configure (1) Linux git source build .configure make (1) ListBox (1) MIT HYDROGEN VIRUS (1) OO (1) Obama (1) PowerShell (1) Run-time (1) SDL (1) SIWA (1) SOX (1) Scala (1) Services (1) Stacks (1) SubSonic (1) TED (1) abstractions (1) ansible hosts linux bash (1) ansible linux deployment how-to (1) ansible yum pip python (1) apache (1) apache 2.2 (1) application life cycle (1) architecture input output (1) archive (1) arguments (1) avatar (1) aws cheat sheet cli (1) aws cli (1) aws cli amazon cheat sheet (1) aws elb (1) backup (1) bash Linux open-ssh ssh ssh_server ssh_client public-private key authentication (1) bash perl search and replace (1) bash stub (1) bin (1) biofuels (1) biology (1) books (1) browser (1) bubblesort (1) bugs (1) build (1) byte (1) cas_sql_dev (1) chennai (1) chrome (1) class (1) claut (1) cmdow (1) code generation sqlserver (1) command (1) command line (1) conf (1) confluence (1) console (1) convert (1) cool programs windows free freeware (1) copy paste (1) copy-paste (1) csv (1) ctags (1) current local time (1) cygwin X11 port-forwarding mintty xclock Linux Unix X (1) cygwin bash how-to tips_n_tricks (1) cygwin conf how-to (1) data (1) data types (1) db2 cheat sheet (1) db2 starter ibm bash Linux (1) debt (1) diagram (1) dictionaries (1) digital (1) disk (1) disk space (1) documentation (1) dos (1) dubai (1) e-cars (1) electric cars (1) electricity (1) emulate (1) errors (1) exponents (1) export workflow (1) extract (1) fast export (1) fexp (1) file extension (1) file permissions (1) findtag (1) firewall (1) for loop (1) freaky (1) functions (1) fusion research (1) german (1) git gitlab issues handling system (1) google cli (1) google code (1) google command line interface (1) gpg (1) ha (1) head (1) helsinki (1) history (1) hop or flop (1) host-independant (1) how-to Windows cmd time date datetime (1) ibm db2 cognos installation example db deployment provisioning (1) ideas (1) image (1) informatica oracle sql (1) informatica repo sql workflows sessions file source dir (1) informatica source files etl (1) install (1) isg-pub issue-tracker architecture (1) it management best practices (1) java (1) jump to (1) keyboard shortcuts (1) ksh (1) level (1) linkedin (1) linux bash ansible hosts (1) linux bash commands (1) linux bash how-to shell expansion (1) linux bash shell grep xargs (1) linux bash tips and t ricks (1) linux bash unix cygwin cheatsheet (1) linux bash user accounts password (1) linux bash xargs space (1) linux cheat-sheet (1) linux cheatsheet cheat-sheet revised how-to (1) linux how-to non-root vim (1) linux ssh hosts parallel subshell bash oneliner (1) london (1) make (1) me (1) metacolumn (1) metadata functions (1) metaphonre (1) method (1) model (1) movie (1) multithreaded (1) mysql cheat sheet (1) mysql how-to table datatypes (1) n900 (1) nano (1) neteza (1) netezza bash linux nps (1) netezza nps (1) netezza nps nzsql (1) netezza nz Linux bash (1) netezza nz bash linux (1) netezza nz nzsql sql (1) netezza nzsql database db sizes (1) non-password (1) nord pol (1) nps backup nzsql schema (1) number formatting (1) nz db size (1) nz table count rows (1) nzsql date timestamp compare bigint to_date to_char now (1) on-lier (1) one-liners (1) one-to-many (1) oneliners (1) open (1) open source (1) openrowset (1) openssl (1) oracle PL/SQL (1) oracle Perl perl (1) oracle installation usability (1) oracle number formatting format-model ora-sql oracle (1) oracle templates create table (1) oracle trigger generic autoincrement (1) oracle vbox virtual box cheat sheet (1) oracle virtual box cheat sheet (1) outlook (1) parser (1) password (1) paths (1) perl @INC compile-time run-time (1) perl disk usage administration Linux Unix (1) perl modules configuration management (1) permissions (1) php (1) picasa (1) platform (1) postgreSQL how-to (1) powerShell cmd cygwin mintty.exe terminal (1) ppm (1) predictions (1) prices (1) principles (1) productivity (1) project (1) prompt (1) proxy account (1) public private key (1) publishing (1) putty (1) qt (1) read file (1) registry (1) relationship (1) repository (1) rm (1) scala ScalaFmt (1) scp (1) scripts (1) scsi (1) search and replace (1) sed (1) sendEmail (1) sh stub (1) shortcuts Windows sql developer Oracle (1) sidebar (1) silicon (1) smells (1) smtp (1) software development (1) software procurement (1) sofware (1) sort (1) sql script (1) sql_dev (1) sqlcmd (1) sqlite (1) sqlite3 (1) sshd (1) sshd cygwin (1) stackoverflow (1) stored procedure (1) stub (1) stupidity (1) subroutines (1) svn (1) sysinternals (1) system design (1) tail (1) tar (1) temp table (1) templates (1) teradata (1) terminal (1) test (1) testing (1) theory (1) thorium (1) time (1) tip (1) title (1) tmux .tmux.conf configuration (1) tmux efficiency bash (1) tool (1) ui code prototyping tips and tricks (1) umask Linux Unix bash file permissions chmod (1) url (1) urls (1) user (1) utility (1) utils (1) vb (1) vbox virtual box cheat sheet (1) vim perl regex bash search for string (1) vim recursively hacks (1) vim starter (1) vim-cheat-sheet vim cheat-sheet (1) vimeo (1) visual stuio (1) warsaw (1) wiki (1) wikipedia (1) window (1) windows 7 (1) windows 8 (1) windows programs (1) windows reinstall (1) windows utility batch perl space Windows::Clipboard (1) wisdoms (1) workflow (1) worth-reading (1) wrapper (1) xp_cmdshell (1) xslt (1) youtube (1)

Blog Archive

Translate with Google Translate

My Blog List