Difference between revisions of "ReNamer:Pascal Script:FileName"
m (moved ReNamer:Pascal Script:Pascal Script in a nutshell:FileName variable to ReNamer:Pascal Script:FileName: better title) |
m (Text replacement - "</source>" to "</syntaxhighlight>") |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{Up|ReNamer:Pascal Script}} | |
− | + | == FileName variable or How to rename a file == | |
− | var FileName : WideString; | + | The essence of ReNamer's PascalScript is hidden under a very meaningful name – the FileName variable. It's declaration looks like that: |
+ | |||
+ | <syntaxhighlight lang="pascal"> | ||
+ | var FileName: WideString; | ||
+ | </syntaxhighlight> | ||
which means it is a variable of the WideString type. | which means it is a variable of the WideString type. | ||
− | A | + | A prefix ''Wide'' in datatype or function name is used to emphasise that this type/function is capable to work with [[Unicode]] characters. FileName variable is the only built-in variable in ReNamer's PascalScript which means that you don't have to declare it. It's already there. When the execution of the script starts FileName variable contains a name of the currently processed file without a path but with extention (e.g. "''file.txt''"). |
− | |||
− | FileName variable is the only built-in variable in ReNamer | ||
− | |||
− | When the execution of the script starts FileName variable contains a name of the currently processed file without a path but with extention (e.g. | ||
− | + | ==== Add a prefix to a filename ==== | |
− | So if you want to add '' | + | Renaming of files with PascalScript consist of changing the contents of the FileName variable. So if you want to add ''"VIP "'' as a prefix to the present filename you would need such a script: |
+ | <syntaxhighlight lang="pascal"> | ||
begin | begin | ||
+ | FileName := 'VIP ' + FileName; | ||
+ | end. | ||
+ | </syntaxhighlight> | ||
− | FileName: | + | This will change a FileName from ''"file.txt"'' to ''"VIP file.txt"'' which will cause ''"d:\test\file.txt"'' file to be renamed into ''"d:\test\VIP file.txt"''. |
− | |||
− | |||
− | + | ==== Move file to absolute folder ==== | |
Using the same method (adding a prefix) you might also move a file to a different folder. | Using the same method (adding a prefix) you might also move a file to a different folder. | ||
+ | <syntaxhighlight lang="pascal"> | ||
begin | begin | ||
+ | FileName := 'd:\movetest\' + FileName; | ||
+ | end. | ||
+ | </syntaxhighlight> | ||
− | FileName: | + | This will change a FileName variable from ''"file.txt"'' to ''"d:\movetest\file.txt"'' and will cause moving a file ''"d:\test\file.txt"'' to ''"d:\movetest\file.txt"''. If the ''"d:\movetest\"'' folder doesn't exist, it will be created. |
− | |||
− | |||
− | + | ==== Move file to relative folder ==== | |
− | You don | + | You don't have to specify the explicit path to the file you want to move. |
+ | <syntaxhighlight lang="pascal"> | ||
begin | begin | ||
− | + | FileName := 'subfolder\' + FileName; | |
− | FileName:= | ||
− | |||
end. | end. | ||
+ | </syntaxhighlight> | ||
− | This will change the contents of the FileName variable from '' | + | This will change the contents of the FileName variable from ''"file.txt"'' to ''"subfolder\file.txt"'' and will cause moving a file ''"d:\test\file.txt"'' into ''"d:\test\subfolder\file.txt"''. |
− | Let | + | ==== Let's stop here and see how does it work ==== |
After the execution of the script ends, the content of the FileName variable is passed to the NewName field of the files table. | After the execution of the script ends, the content of the FileName variable is passed to the NewName field of the files table. | ||
Line 51: | Line 55: | ||
What happens next has nothing to do with PascalScript. It works for all the rule types. | What happens next has nothing to do with PascalScript. It works for all the rule types. | ||
− | If NewName field contains an explicit path (a path that starts from a drive, eg. '' | + | If NewName field contains an '''explicit path''' (a path that starts from a drive, eg. ''"d:\test\newname.txt"'') it will be copied to the NewPath field. |
+ | |||
+ | If NewName field contains a '''relative path''' (eg. ''"file.txt"'' or ''"movetest\file.txt"''), NewPath field will be created from the old path of the file and the NewName. | ||
− | |||
A simple example will make all things clear. | A simple example will make all things clear. | ||
− | Let | + | Let's say we have a file ''"file.txt"'' with Path ''"d:\test\file.txt"'' and our rules produced a NewName ''"movetest\file.txt"''. |
− | ReNamer truncates the filename from the end of the Path (now we | + | ReNamer truncates the filename from the end of the Path (now we"ve got ''"d:\test\"'') and adds a NewName to it. So at the end we've got NewPath field filled with ''"d:\test\movetest\file.txt"''. |
− | When you press Rename button, ReNamer will try to rename files in the files table according to the Path and NewPath fields. It will simply move a file from Path (eg. '' | + | When you press Rename button, ReNamer will try to rename files in the files table according to the Path and NewPath fields. It will simply move a file from Path (eg. ''"d:\test\file.txt"'') to NewPath (eg. ''"d:\test\movetest\file.txt"''). |
− | What we need to remember is that NewName (FileName in case of PascalScript) shouldn | + | What we need to remember is that NewName (FileName in case of PascalScript) shouldn't start with a ''"\"'', cause in this case we will get it doubled (eg. ''"d:\test\\movetest\file.txt"'') in the new filename and we'll get a warning about ''"invalid filename"''. |
− | [[ | + | [[Category:ReNamer]] |
+ | [[Category:Pascal Script]] |
Latest revision as of 15:01, 8 February 2017
FileName variable or How to rename a file
The essence of ReNamer's PascalScript is hidden under a very meaningful name – the FileName variable. It's declaration looks like that:
var FileName: WideString;
which means it is a variable of the WideString type.
A prefix Wide in datatype or function name is used to emphasise that this type/function is capable to work with Unicode characters. FileName variable is the only built-in variable in ReNamer's PascalScript which means that you don't have to declare it. It's already there. When the execution of the script starts FileName variable contains a name of the currently processed file without a path but with extention (e.g. "file.txt").
Add a prefix to a filename
Renaming of files with PascalScript consist of changing the contents of the FileName variable. So if you want to add "VIP " as a prefix to the present filename you would need such a script:
begin
FileName := 'VIP ' + FileName;
end.
This will change a FileName from "file.txt" to "VIP file.txt" which will cause "d:\test\file.txt" file to be renamed into "d:\test\VIP file.txt".
Move file to absolute folder
Using the same method (adding a prefix) you might also move a file to a different folder.
begin
FileName := 'd:\movetest\' + FileName;
end.
This will change a FileName variable from "file.txt" to "d:\movetest\file.txt" and will cause moving a file "d:\test\file.txt" to "d:\movetest\file.txt". If the "d:\movetest\" folder doesn't exist, it will be created.
Move file to relative folder
You don't have to specify the explicit path to the file you want to move.
begin
FileName := 'subfolder\' + FileName;
end.
This will change the contents of the FileName variable from "file.txt" to "subfolder\file.txt" and will cause moving a file "d:\test\file.txt" into "d:\test\subfolder\file.txt".
Let's stop here and see how does it work
After the execution of the script ends, the content of the FileName variable is passed to the NewName field of the files table.
What happens next has nothing to do with PascalScript. It works for all the rule types.
If NewName field contains an explicit path (a path that starts from a drive, eg. "d:\test\newname.txt") it will be copied to the NewPath field.
If NewName field contains a relative path (eg. "file.txt" or "movetest\file.txt"), NewPath field will be created from the old path of the file and the NewName.
A simple example will make all things clear.
Let's say we have a file "file.txt" with Path "d:\test\file.txt" and our rules produced a NewName "movetest\file.txt".
ReNamer truncates the filename from the end of the Path (now we"ve got "d:\test\") and adds a NewName to it. So at the end we've got NewPath field filled with "d:\test\movetest\file.txt".
When you press Rename button, ReNamer will try to rename files in the files table according to the Path and NewPath fields. It will simply move a file from Path (eg. "d:\test\file.txt") to NewPath (eg. "d:\test\movetest\file.txt").
What we need to remember is that NewName (FileName in case of PascalScript) shouldn't start with a "\", cause in this case we will get it doubled (eg. "d:\test\\movetest\file.txt") in the new filename and we'll get a warning about "invalid filename".