home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #6
/
amigamamagazinepolishissue1998.iso
/
opus
/
v4
/
dopus-1541
/
rexx
/
dopus
/
1541
/
1541rename.rexx
< prev
Wrap
OS/2 REXX Batch file
|
1977-12-31
|
4KB
|
177 lines
/*
*
* Rename file(s) on 1541 and Amiga from DOpus.
*
* (c) 1995 by Christer Bjarnemo mr.bjarnemo@mn.medstroms.se
*
* Based on Twin-Dopus by Patrick Van Beem (patrick.van.beem@aobh.xs4all.nl),
* which based he's script on the DOpusLhaARexx package by Geoff Seeley.
*
*/
dircmd = "Work:Emulators/A64/Utils/" /* Note. If the file ENVARC:1541.PREFS */
rxdir = "Rexx:Dopus/1541/" /* exists, that one will override the */
tmpdir = "t:" /* settings here... */
DOpusPort = 'DOPUS.1'
snuff = '22'x
if open(1,'env:1541.prefs','Read') then do
dircmd = readln(1)
rxdir = readln(1)
tmpdir = readln(1)
end
close(1)
dircmd = slashpath(dircmd)
rxdir = slashpath(rxdir)
tmpdir = slashpath(tmpdir)
if ~show(l,"rexxsupport.library") then
call addlib("rexxsupport.library",0,-30,0)
if showlist('Ports', DOpusPort) = 0 then do
say 'Directory Opus Arexx port not found. Aborting.'
call CleanUp
end
address(DOpusPort)
options results
/* setup DOpus window and tell user what's happening */
Busy on
TopText "Renaming selected files..."
/* Get the destination path */
'Status 6 -1'
GetEntry Result
ToPath = Result
if left(ToPath,1) = '*' then do
ToPath = SubStr(ToPath,2)
DoReread='TRUE'
end
else do
'Status 13 -1'
ToPath = result
if ToPath = '' then do
TopText "No destination directory selected."
call CleanUp
end
DoReread='FALSE'
end
ToPath=Quote(ToPath)
/* Get the current path and do file-copy, depending on the */
/* type of path (1541/normal path) */
'Status 6 -1'
GetEntry Result
FilePath = Result
/* 1541-way */
if left(FilePath,1) = '*' then do
FilePath = SubStr(FilePath,2)
GetSelectedAll
SelectedEntries = result
if SelectedEntries = 'RESULT' then do
TopText "No files selected."
call CleanUp
end
NumberOfEntries = words(SelectedEntries)
do EntryNumber = 1 to NumberOfEntries
Index = word(SelectedEntries, EntryNumber)
GetEntry Index+1
Entry = result
File = strip(left(Entry,25))
if right(FilePath,1) = ':' then
File = FilePath || File
else
File = FilePath || '' || File
Getstring '"Rename this file?" "'file'"'
newname = result
if newname ~= file then do
address command dircmd'64Cmd >'tmpdir'1541.tmp "r:'newname'='File'" 8'
if open(1,tmpdir'1541.tmp','Read') then do
Do for 8 ; tmp = readln(1) ; End
say tmp
Toptext tmp
close(1)
end
end
selection = Index||' 0 0'
SelectEntry selection
end
end
/* Normal way */
else do
rename
end
'DisplayDir -1'
if DoReread='TRUE' then do
address arexx rxdir'1541Dir.rexx'
end
call CleanUp
exit
/*---------------------------------------------------------------------------*/
CleanUp: /* Remove any files and exit */
Busy off
exit
return
/*--------------------------------------------------------------------------*/
Quote: procedure /* add quotes to string */
parse arg string
return '"'||string||'"'
/*--------------------------------------------------------------------------*/
GetWord: procedure /* get word from '|' separated string */
parse arg number,words
if(left(words,1) ~= '|') then
words = '|'||words
do i=1 to number
idx = index(words, '|');
words = substr(words, idx+1)
end
end = index(words, '|') - 1
if words = "" then
return ""
ret_str = substr(words, 1, end)
return ret_str
/*--------------------------------------------------------------------------*/
CountWords: procedure /* count words from '|' separated string */
parse arg words
count = 0
idx = index(words, '|')
do while idx ~= 0
count = count + 1
words = substr(words, idx+1)
idx = index(words, '|')
end
return count
/*---------------------------------------------------------------------------*/
Slashpath: procedure /* Put a (/) or (:) at the end of filenames (if neccessary) */
parse arg string
if right(string,1) ~= ':' & right(string,1) ~= '/' then do
string = string'/'
end
return string