The Dunyazad Digital Library

About the Library

The Reading Room

The Audio Wing

Support the Library

Other Stuff ...

Software

with

With is a Windows console command that lets you do things with all or some files in a directory.

Current version: 2018-09-24 – download link below.

Syntax

with [options] files command line

with [options] files1 [files2 files3 …] do command line

Executes 'command line' for all files matching 'files' in the current directory

'files' can contain wildcard characters ? or *, * can stand for *.*

Several filename match patterns ('files' 'files2' …) can be processed, they must be separated from 'command line' by 'do'

'files1' 'files2' etc. will be processed consecutively

File names get read before processing starts

If a file matches more than one match pattern, it will be called each time

with -? displays the help text

Options:

-q — quiet, don't display commands

-n — display number of files at the end

-t — test only, don't execute

-° — do NOT substitute ° with space character

-² — do NOT substitute ² with "

'Command line' can contain the following symbols:

*.*  stands for the full file name

*  can be used instead of *.* when it occurs as a separate word

*.  stands for the file name without extension, including the dot

*'  stands for the file name without extension, not including the dot

.*  stands for file extension, including the dot

'*  stands for file extension, not including the dot

Enclose redirection/pipe symbols < > | in " " to make them part of 'command line'

° can be used for spaces in file names, both in 'filename' and 'command line'

² stands for double quotes meant to be included in 'command line'

If you need ° to stand for itself, you have to use the option -° and, if necessary, enclose file names with spaces in " "

If you need ² to stand for itself, you have to use the option -²

Examples

with *.jpeg ren * *.jpg

renames all files *.jpeg to *.jpg

with *.txt copy * *'°backup.txt

copies all files *.txt to * backup.txt ("mytext backup.txt")

with *.log *.ini do copy * *.*.backup

copies all files *.log and *.ini to *.*.backup ("mylog.log.backup")

with *.rw2 if not exist *.jpg del *

deletes those .rw2 files whose corresponding .jpg files have been deleted.

This is actually what made me want to write this tool. My camera writes two files for each picture, .jpg and the "raw" file .rw2

With an image viewer I browse the .jpg files and delete the ones I don't want to keep, which leaves the corresponding .rw2 files to be deleted.

If you mistype the "if" clause, all your .rw2 files may be gone -- this is a safer method:

with *.rw2 if not exist *.jpg ren * *.*.delete

adds the extension .delete to the files instead of deleting them, you can now check the result and then del *.delete

Note that * stands for the full file name when it's a separate word, but *.* is needed in the renamed file.

Alternatively,

with *.rw2 if not exist *.jpg ren * *.delete

would rename myfile.rw2 to myfile.delete, instead of myfile.rw2.delete

If you want to execute more complex tasks, you can call a .cmd batch file, like:

with * mybatchfile.cmd *

For a discussion of quotation marks and redirection/pipe symbols, see with.txt

Download and Installation

Download program file and documentation:

with.zip (version 2018-09-24)

Unpack the zip file (it contains with.exe and the documentation file with.txt) and move or copy with.exe to a directory that is included in the system path; you can then use it from the Windows command line. Nothing gets written to the registry. To uninstall, simply delete.

Disclaimer: I have tested this program and am using it myself, but I cannot guarantee its correct function under all circumstances. Use it with caution, and consider backing up your data before executing commands that may involve deleting or overwriting files. Incorrect use can lead to loss of data.

License

This program, including the source code, is freeware. Do with it whatever you like. If you have any questions, suggestions, complaints or comments, I’d be glad to hear from you.

Source files

This program is written in Euphoria, version 4.0.5, compiled with Watcom C/C++ compiler 1.9, and compressed with upx. Euphoria is open source, and available at openeuphoria.org

Download Euphoria source files (not necessary for using the program):

with-source.zip

History

09/24/2018 – added the ability to process more than one file name or match pattern

04/04/2018 – documentation updated

03/26/2018 – program and documentation updated, added ² to stand for "

03/21/2018 – first published version

---

Back to the “> Software” page