Rem :: or, smaller with the same results. With for /d all directories will be listed in the loop, and their source names will be in %~nxi, which can be used in the ren command syntax.įor target name, use !_dir:*- =!, it will remove everything ( *) that comes before -, and already defining the destination name by expanding in same line the !_dir! variable without unwanted characters using cmd.exe /v:on /cįor what you have been trying, a use of for /d loop and substring set in ren syntaxes would be resolved by: for /d %i in (*)do cmd.exe /v:on /c "set "_dir=%~nxi" & move "%~nxi" "!_dir:*- =!"" You can do this using a for /d loop and set to remove everything that comes before (and together) the *-: Return the whole folder name use %%I or %%~nxI Name like "Sample 2.6.4" the output of %%~nI will be truncated to "Sample 2.6" to Parameter expansion will treat a Full Stop as a file extension, so for a directory.Of a directory name and this can cause issues with FOR /D. With a '.' ( period/full stop) it is possible to include a Full Stop in the middle Obs.: About using %%~x in directory name observation note in :Īlthough Win32 will not recognise any file or directory name that begins or ends %~pnxI - expands %I to a path, file name and extension only %~pnI - expands %I to a path and file name only If all you need to do is rename a batch of files into a naming structure. The modifiers can be combined to get compound results: While there aren't batch renaming tools built into Windows 10, you can use the File Explorer to do basic renaming.%~xI - expands %I to a file extension only Use the FOR variable syntax replacement:.%%~nxi => expands %%~i to a file/dir name and extension %~xi - expands %i to a file/dir extension only %~ni - expands %i to a file/dir name only %~i - expands %i removing any surrounding quotes (") %~fi - expands %i to a fully qualified path file/dir name only
0 Comments
Leave a Reply. |