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

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) 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) 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 (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) 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) smtp (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) 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

VideoBar

This content is not yet available over encrypted connections.