home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
ckscripts
/
changetype
< prev
next >
Wrap
Text File
|
2020-01-01
|
1KB
|
41 lines
#!/usr/local/bin/kermit +
#
# c h a n g e t y p e
#
# Given a list of files, changes the filetype of each file whose filetype
# matches argument \%1 to argument \%2. Example:
#
# changetype hlp txt *
#
# The third argument is a filename, a wildcard to match filenames, or
# a list of files. If it is omitted, all files in the current directory
# are assumed.
#
# Illustrates:
# . Command-line argument interpretation
# . Array copying with offset
# . FOR loop consruction
# . Using \ffiles() to expand wildards and assign file list to an array
# . Using \fstripx() to remove the "filetype" part of a filename
# . RENAME command
#
# Author: F. da Cruz, The Kermit Project, Columbia University, July 1999
.\%n ::= \v(argc) - 1 ; How many arguments on command line.
if ( < \%n 2 ) exit 1 {Usage: \fbasename(\%0) oldtype newtype [ filelist ]}
switch \%n {
:2, .\%n := \ffiles(*.\%1,&a), break ; No args, do * in current directory.
:3, .\%n := \ffiles(\&_[3],&a), break ; 1 arg, expand it.
:default ; More than 1 arg, use them literally.
array copy &_[3] &a[]
decrement \%n 2
}
for \%i 1 \%n 1 { ; Loop through each file
if not match \&a[\%i] *.\%1 continue
rename /v \&a[\%i] \fstripx(\&a[\%i]).\%2
}
exit 0