Copy and Paste/Rename the Filename Part ???
Moderators: Hacker, petermad, Stefan2, white
Copy and Paste/Rename the Filename Part ???
Hi (and sorry, i was not so inspired for the Title)
Is that possible to do this with some TC Combo Commands ?
Example:
A+C= {{ Copy the current FileName (without the .ext part) }}
A+V= {{ And Paste/Rename the new current Filename with it }}
Another Example about it:
Alt C =>
Copy "filename" from "filename.jpg" in the Clipboard
- https://imgur.com/a/xLTcW
Alt V =>
Rename "f!l3n@m3.txt" to "filename.txt" (previously copied)
- https://imgur.com/a/68W5A
I don't know if my explanations are very clears...
But is that possible to do it with TC Commands? (can't find) or does i need to use a Windows Batch File?
Thank You!
Is that possible to do this with some TC Combo Commands ?
Example:
A+C= {{ Copy the current FileName (without the .ext part) }}
A+V= {{ And Paste/Rename the new current Filename with it }}
Another Example about it:
Alt C =>
Copy "filename" from "filename.jpg" in the Clipboard
- https://imgur.com/a/xLTcW
Alt V =>
Rename "f!l3n@m3.txt" to "filename.txt" (previously copied)
- https://imgur.com/a/68W5A
I don't know if my explanations are very clears...
But is that possible to do it with TC Commands? (can't find) or does i need to use a Windows Batch File?
Thank You!
Last edited by islogged on 2018-03-24, 02:25 UTC, edited 8 times in total.
TC V9.0a 64Bits with Official License Here
Windows 10 Enterprise x64 RedStone 3
Windows 10 Enterprise x64 RedStone 3
Not with Alt+C, but you can easily set this option in TC: Options > Operation > Select only the file name when renaming (not the extension). When enabled, you can start to rename a file, copy the name with the default Ctrl+C, then cancel the in-place rename, go to the other file and start renaming there, pasting the file name in the process. I use such procedure quite often.
Regards
Dalai
Regards
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Thanks for the Answer!
I tried it with a new install test of TC, but it keeps don't work...
As you told:
It doesn't work!
Thanks to tell me more...
I tried it with a new install test of TC, but it keeps don't work...
As you told:
Here i just a made a Ctrl C to get the Source Name File: https://streamable.com/y5xckyou can easily set this option in TC: Options > Operation > Select only the file name when renaming (not the extension). When enabled, you can start to rename a file, copy the name with the default Ctrl+C
And here i just Ctrl V to past-it for rename the Target File: https://streamable.com/s5kk3then cancel the in-place rename, go to the other file and start renaming there, pasting the file name in the process. I use such procedure quite often
It doesn't work!
Thanks to tell me more...
TC V9.0a 64Bits with Official License Here
Windows 10 Enterprise x64 RedStone 3
Windows 10 Enterprise x64 RedStone 3
- sqa_wizard
- Power Member
- Posts: 3893
- Joined: 2003-02-06, 11:41 UTC
- Location: Germany
2islogged
This buttonbar button should do it - notice that ALL marked files will get the name of the file under the cursor. File extensions are left untouched:
This buttonbar button should do it - notice that ALL marked files will get the name of the file under the cursor. File extensions are left untouched:
Code: Select all
TOTALCMD#BAR#DATA
%COMSPEC% /C
if exist %S1\* ((echo MARKER IKKE MAPPER!) && (echo.) && pause) else (for /F "usebackq delims=" %%n in (`type %WF`) do ren "%%n" "%O%%~xn")
wcmicons.dll,32
Copy Name of file under cursor to Selected files (unchanged extensions)
-1
To make the button:
1. Mark the green text above (including TOTALCMD#BAR#DATA in the first line and -1 in the last line).
2. Copy it to the ClipBoard (Ctri+C).
3. Right click on TC's buttonbar and choose "Paste".
License #524 (1994)
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
Usually I step over source file and press Shift+F6 TWICE, that will leave only filename marked, then Ctrl+C will copy it. Then go to destination file, press SHIFT+F6 twice again which will paint only Filename and press Ctrl+V [optionally add anything else] and ENTER to apply. It's VERY fast to do it that way.
Each Shift+F6 will alternate selection between: filename / filename+ext
Each Shift+F6 will alternate selection between: filename / filename+ext
Correction:
Code: Select all
TOTALCMD#BAR#DATA
%COMSPEC% /C
if exist %S1\* ((echo DO NOT MARK DIRECTORIES!) && (echo.) && pause) else (for /F "usebackq delims=" %%n in (`type %WF`) do ren "%%n" "%O%%~xn")
wcmicons.dll,32
Copy Name of file under cursor to Selected files (unchanged extensions)
-1
License #524 (1994)
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
2isidro
It's the same way I already posted above. But maybe it's the better description, I don't know. One more thing: To avoid having to press Shift+F6 twice, set the option I mentioned above.
Regards
Dalai
It's the same way I already posted above. But maybe it's the better description, I don't know. One more thing: To avoid having to press Shift+F6 twice, set the option I mentioned above.
Regards
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Re:
Greetings,petermad wrote: 2018-04-11, 06:18 UTC Correction:Code: Select all
TOTALCMD#BAR#DATA %COMSPEC% /C if exist %S1\* ((echo DO NOT MARK DIRECTORIES!) && (echo.) && pause) else (for /F "usebackq delims=" %%n in (`type %WF`) do ren "%%n" "%O%%~xn") wcmicons.dll,32 Copy Name of file under cursor to Selected files (unchanged extensions) -1
I am trying to learn/do something similar and can use [user]petermad[/user], or someone in the know, to explain the code for the button. Specifically breaking up the if exist line and commenting on each piece of it.
Thank you.
Re: Copy and Paste/Rename the Filename Part ???
2risk
IF %S1\* EXISTS then %S1 must be a directory, and since we don't want to rename diretories, we give a message (ECHO )that it is not allowed to do so.
Otherwise (ELSE) use the FOR command (you can get all about the syntax by typing FOR /? in a command prompt)
So FOR all the items in TC's %WF temporary list of marked files, REName the item with the name (without the extension) of the file under the cursor (%0) and the extension of the original item (%%~xn).
To see all TC's parameters press "Help" while editing a button bar button.
To get help for the IF command type IF /? at a command prompt.
To get help for the FOR command type FOR /? at a command prompt.
I have later refined the command to work for Unicode names and for hidden and system files:
%S1 is the first of the selected items.explain the code for the button
IF %S1\* EXISTS then %S1 must be a directory, and since we don't want to rename diretories, we give a message (ECHO )that it is not allowed to do so.
Otherwise (ELSE) use the FOR command (you can get all about the syntax by typing FOR /? in a command prompt)
So FOR all the items in TC's %WF temporary list of marked files, REName the item with the name (without the extension) of the file under the cursor (%0) and the extension of the original item (%%~xn).
To see all TC's parameters press "Help" while editing a button bar button.
Spoiler
Code: Select all
Parameters: Here you can specify command line parameters. Fixed parameters must be specified directly after the file name, because otherwise, in a Drag&Drop, only the file name would be given to the program.
Special parameters:
? as the first parameter causes a Dialog box to be displayed before starting the program, containing the following parameters. You can change the parameters before starting the program. You can even prevent the program's execution.
%P causes the source path to be inserted into the command line, including a backslash (\) at the end.
%N places the filename under the cursor into the command line.
%T inserts the current target path. Especially useful for packers.
%M places the current filename in the target directory into the command line.
%O places the current filename without extension into the command line.
%E places the current extension (without leading period) into the command line.
%S insert the names of all selected files into the command line. Names containing spaces will be surrounded by double quotes. Please note the maximum command line length of 32767 characters.
%S10
insert the names of the first 10 selected files (max.) into the command line. Allows you to limit the number of file names passed to the program. You can use any other number.
%P%S
insert the names of all selected files into the command line, with full path. Names containing spaces will be surrounded by double quotes. Do NOT put quotes around %P%S yourself!
%R like %S, but with selected names from the target panel
%C1 Like the first parameter of "Compare by content": First selected file, or file under cursor
%C2 Like the second parameter of "Compare by content": Second selected file, or first selected in target panel, or file with same name in target panel. Note: If the right panel is active and less than 2 files are selected, %C1 and %C2 will be reversed.
%C3..%C9
Selected files Nr. 3 .. 9 in source panel, empty if not enough selected
%c1..%c9
Like %C1..%C9, but with 8.3 names and paths
Notes: %N and %M insert the long name, while %n and %m insert the DOS alias name (8.3). %P and %T insert the long path name, and %p and %t the short path name (Same for %o, %e and %s). %p/%t inserts the ftp URL of the directory for ftp connections.
By putting %P, %p, %T or %t directly in front of %S or %s, the path name is inserted with the file name for each file. Example: %P%S inserts the long path and file name for all selected files.
%% inserts the percent-sign.
%L, %l, %F, %f, %D, %d, %WL, %WF, %UL, %UF
create a list file in the TEMP directory with the names of the selected files and directories, and appends the name of the list file to the command line. The list is deleted automatically when the called program quits. Only one list per command is supported. 10 types of list files can be created:
%L Long file names including the complete path, e.g. c:\Program Files\Long name.exe
%l (lowercase L) Short file names including the complete path, e.g. C:\PROGRA~1\LONGNA~1.EXE
%F Long file names without path, e.g. Long name.exe
%f Short file names without path, e.g. LONGNA~1.EXE
%D Short file names including the complete path, but using the DOS character set for accents.
%d Short file names without path, but using the DOS character set for accents.
%UL,%UF
like %L and %F, but with UTF-8 Unicode list file (with byte order mark)
%WL,%WF
like %L and %F, but with a UTF-16 Unicode list file (with byte order mark)
%v Insert virtual file name in case of file system plugins like "virtual panel", where %N pastes the name of the real file (in the file system) to which the entry points to
%V Like %v, but including the full path (including the plugin name)
%X Interprets the following parameters after this parameter as left/right instead of source/target:
%P, %p (left path), %T, %t (right path), %N, %n (left name), %M, %m (right name),
%S, %s (left selected), %R, %r (right selected)
Example: %X%P %T sends left and right path to e.g. an external sync tool
%x Interprets the following parameters after this parameter again as source/target
Example: %X%P %x%P sends left and source path to the called program
%Y anywhere in the parameters: Pass empty list to program when using one of the List parameters like %L. Otherwise, the file under the cursor would be passed.
%Z anywhere in the parameters: Allow to pass archives as path to programs for %P or %T when inside an archive
Example: %Z%P passes name of archive to external tool when TC shows contents of an archive
Only when defining alias commands:
%A Inserts the rest of the entered command line
%A1..%A9
Inserts the first until the ninth parameter.
Example: Alias op points to Command: totalcmd.exe Parameter: /L=%A1 /R=%A2
-> Command line: op c:\dir1 d:\dir2 will create command: totalcmd.exe /L=c:\dir1 /R=d:\dir2
To get help for the IF command type IF /? at a command prompt.
Spoiler
Code: Select all
C:\>IF /?
Performs conditional processing in batch programs.
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
NOT Specifies that Windows should carry out
the command only if the condition is false.
ERRORLEVEL number Specifies a true condition if the last program run
returned an exit code equal to or greater than the number
specified.
string1==string2 Specifies a true condition if the specified text strings
match.
EXIST filename Specifies a true condition if the specified filename
exists.
command Specifies the command to carry out if the condition is
met. Command can be followed by ELSE command which
will execute the command after the ELSE keyword if the
specified condition is FALSE
The ELSE clause must occur on the same line as the command after the IF. For
example:
IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)
The following would NOT work because the del command needs to be terminated
by a newline:
IF EXIST filename. del filename. ELSE echo filename. missing
Nor would the following work, since the ELSE command must be on the same line
as the end of the IF command:
IF EXIST filename. del filename.
ELSE echo filename. missing
The following would work if you want it all on one line:
IF EXIST filename. (del filename.) ELSE echo filename. missing
If Command Extensions are enabled IF changes as follows:
IF [/I] string1 compare-op string2 command
IF CMDEXTVERSION number command
IF DEFINED variable command
where compare-op may be one of:
EQU - equal
NEQ - not equal
LSS - less than
LEQ - less than or equal
GTR - greater than
GEQ - greater than or equal
and the /I switch, if specified, says to do case insensitive string
compares. The /I switch can also be used on the string1==string2 form
of IF. These comparisons are generic, in that if both string1 and
string2 are both comprised of all numeric digits, then the strings are
converted to numbers and a numeric comparison is performed.
The CMDEXTVERSION conditional works just like ERRORLEVEL, except it is
comparing against an internal version number associated with the Command
Extensions. The first version is 1. It will be incremented by one when
significant enhancements are added to the Command Extensions.
CMDEXTVERSION conditional is never true when Command Extensions are
disabled.
The DEFINED conditional works just like EXIST except it takes an
environment variable name and returns true if the environment variable
is defined.
%ERRORLEVEL% will expand into a string representation of
the current value of ERRORLEVEL, provided that there is not already
an environment variable with the name ERRORLEVEL, in which case you
will get its value instead. After running a program, the following
illustrates ERRORLEVEL use:
goto answer%ERRORLEVEL%
:answer0
echo Program had return code 0
:answer1
echo Program had return code 1
You can also use numerical comparisons above:
IF %ERRORLEVEL% LEQ 1 goto okay
%CMDCMDLINE% will expand into the original command line passed to
CMD.EXE prior to any processing by CMD.EXE, provided that there is not
already an environment variable with the name CMDCMDLINE, in which case
you will get its value instead.
%CMDEXTVERSION% will expand into a string representation of the
current value of CMDEXTVERSION, provided that there is not already
an environment variable with the name CMDEXTVERSION, in which case you
will get its value instead.
C:\>
To get help for the FOR command type FOR /? at a command prompt.
Spoiler
Code: Select all
C:\>FOR /?
Runs a specified command for each file in a set of files.
FOR %variable IN (set) DO command [command-parameters]
%variable Specifies a single letter replaceable parameter.
(set) Specifies a set of one or more files. Wildcards may be used.
command Specifies the command to carry out for each file.
command-parameters
Specifies parameters or switches for the specified command.
To use the FOR command in a batch program, specify %%variable instead
of %variable. Variable names are case sensitive, so %i is different
from %I.
If Command Extensions are enabled, the following additional
forms of the FOR command are supported:
FOR /D %variable IN (set) DO command [command-parameters]
If set contains wildcards, then specifies to match against directory
names instead of file names.
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
Walks the directory tree rooted at [drive:]path, executing the FOR
statement in each directory of the tree. If no directory
specification is specified after /R then the current directory is
assumed. If set is just a single period (.) character then it
will just enumerate the directory tree.
FOR /L %variable IN (start,step,end) DO command [command-parameters]
The set is a sequence of numbers from start to end, by step amount.
So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
generate the sequence (5 4 3 2 1)
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
or, if usebackq option present:
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ('string') DO command [command-parameters]
FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]
file-set is one or more file names. Each file is opened, read
and processed before going on to the next file in file-set.
Processing consists of reading in the file, breaking it up into
individual lines of text and then parsing each line into zero or
more tokens. The body of the for loop is then called with the
variable value(s) set to the found token string(s). By default, /F
passes the first blank separated token from each line of each file.
Blank lines are skipped. You can override the default parsing
behavior by specifying the optional "options" parameter. This
is a quoted string which contains one or more keywords to specify
different parsing options. The keywords are:
eol=c - specifies an end of line comment character
(just one)
skip=n - specifies the number of lines to skip at the
beginning of the file.
delims=xxx - specifies a delimiter set. This replaces the
default delimiter set of space and tab.
tokens=x,y,m-n - specifies which tokens from each line are to
be passed to the for body for each iteration.
This will cause additional variable names to
be allocated. The m-n form is a range,
specifying the mth through the nth tokens. If
the last character in the tokens= string is an
asterisk, then an additional variable is
allocated and receives the remaining text on
the line after the last token parsed.
usebackq - specifies that the new semantics are in force,
where a back quoted string is executed as a
command and a single quoted string is a
literal string command and allows the use of
double quotes to quote file names in
file-set.
Some examples might help:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
would parse each line in myfile.txt, ignoring lines that begin with
a semicolon, passing the 2nd and 3rd token from each line to the for
body, with tokens delimited by commas and/or spaces. Notice the for
body statements reference %i to get the 2nd token, %j to get the
3rd token, and %k to get all remaining tokens after the 3rd. For
file names that contain spaces, you need to quote the filenames with
double quotes. In order to use double quotes in this manner, you also
need to use the usebackq option, otherwise the double quotes will be
interpreted as defining a literal string to parse.
%i is explicitly declared in the for statement and the %j and %k
are implicitly declared via the tokens= option. You can specify up
to 26 tokens via the tokens= line, provided it does not cause an
attempt to declare a variable higher than the letter 'z' or 'Z'.
Remember, FOR variables are single-letter, case sensitive, global,
and you can't have more than 52 total active at any one time.
You can also use the FOR /F parsing logic on an immediate string, by
making the file-set between the parenthesis a quoted string,
using single quote characters. It will be treated as a single line
of input from a file and parsed.
Finally, you can use the FOR /F command to parse the output of a
command. You do this by making the file-set between the
parenthesis a back quoted string. It will be treated as a command
line, which is passed to a child CMD.EXE and the output is captured
into memory and parsed as if it was a file. So the following
example:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
would enumerate the environment variable names in the current
environment.
In addition, substitution of FOR variable references has been enhanced.
You can now use the following optional syntax:
%~I - expands %I removing any surrounding quotes (")
%~fI - expands %I to a fully qualified path name
%~dI - expands %I to a drive letter only
%~pI - expands %I to a path only
%~nI - expands %I to a file name only
%~xI - expands %I to a file extension only
%~sI - expanded path contains short names only
%~aI - expands %I to file attributes of file
%~tI - expands %I to date/time of file
%~zI - expands %I to size of file
%~$PATH:I - searches the directories listed in the PATH
environment variable and expands %I to the
fully qualified name of the first one found.
If the environment variable name is not
defined or the file is not found by the
search, then this modifier expands to the
empty string
The modifiers can be combined to get compound results:
%~dpI - expands %I to a drive letter and path only
%~nxI - expands %I to a file name and extension only
%~fsI - expands %I to a full path name with short names only
%~dp$PATH:I - searches the directories listed in the PATH
environment variable for %I and expands to the
drive letter and path of the first one found.
%~ftzaI - expands %I to a DIR like output line
In the above examples %I and PATH can be replaced by other valid
values. The %~ syntax is terminated by a valid FOR variable name.
Picking upper case variable names like %I makes it more readable and
avoids confusion with the modifiers, which are not case sensitive.
C:\>
I have later refined the command to work for Unicode names and for hidden and system files:
Code: Select all
if not exist "%P" ((echo NOT SUPPORTED FOR THIS LOCATION!) && pause) else if exist %Y%P%S1\ ((echo DO NOT MARK DIRECTORIES!) && pause) else chcp 65001 && %%COMSPEC%% /C for /F "usebackq delims=" %%n in (`type %WL`) do attrib -H -S "%%n" && %%COMSPEC%% /C for /F "usebackq delims=" %%n in (`type %WL`) do if not exist "%%n\*" ren "%%n" "%O%%~xn"
License #524 (1994)
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
Re: Copy and Paste/Rename the Filename Part ???
Thank you @petermad
Re: Copy and Paste/Rename the Filename Part ???
Thank you @petermad...
Please tell, if it is possible to combine DOS commands with commands from TC? How?
for instance for the above example use "cm_ListInternalOnly" (which supports parameters)
Please tell, if it is possible to combine DOS commands with commands from TC? How?
for instance for the above example use "cm_ListInternalOnly" (which supports parameters)
Re: Copy and Paste/Rename the Filename Part ???
No, it is not possible to use TC's commands in a DOS command line.Please tell, if it is possible to combine DOS commands with commands from TC? How?
for instance for the above example use "cm_ListInternalOnly" (which supports parameters)
License #524 (1994)
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar