Loop that appends filename when copying same filename from different folders to a new folder
I have the following code to search for a specific file name (ratings.zil) across multiple folders and copy them to a new folder:
for /R %f in (ratings.zil) do @IF EXIST %f copy "%f" "C:here"
But when the file copies to the new folder it overwrites instead of appending a number at the end of each ratings.zil
– i.e. ratings(1).zil
, ratings(2).zil
. Is there a way to add a loop to the above code that will append a number after each file?
This question was originally marked as a duplicate, except the answer for the duplicate only works when you’re copying a file within the same folder.
windows batch-file cmd
|
show 4 more comments
I have the following code to search for a specific file name (ratings.zil) across multiple folders and copy them to a new folder:
for /R %f in (ratings.zil) do @IF EXIST %f copy "%f" "C:here"
But when the file copies to the new folder it overwrites instead of appending a number at the end of each ratings.zil
– i.e. ratings(1).zil
, ratings(2).zil
. Is there a way to add a loop to the above code that will append a number after each file?
This question was originally marked as a duplicate, except the answer for the duplicate only works when you’re copying a file within the same folder.
windows batch-file cmd
You could perhaps link the former question, so one could use the code from there... Anyway, what have you tried yourself to solve that issue?
– aschipfl
Nov 20 '18 at 9:12
@aschipfl OP delete the previous question.
– Gerhard Barnard
Nov 20 '18 at 9:13
@greeny, have a look here at DBenham's answer, you would just need to ammend the code to add yourratings.zil
instead.
– Gerhard Barnard
Nov 20 '18 at 9:14
Possible duplicate of Windows batch file to copy and keep duplicates
– LotPings
Nov 20 '18 at 9:17
@GerhardBarnard, thanks - I'll try...I'm not a programmer so that looks entirely confusing to me. Do the double % signs signify something that needs to be filled in with whatever is between the %%'s? i.e. %source% means I put the source path there instead of %source%?
– Greeny
Nov 20 '18 at 9:22
|
show 4 more comments
I have the following code to search for a specific file name (ratings.zil) across multiple folders and copy them to a new folder:
for /R %f in (ratings.zil) do @IF EXIST %f copy "%f" "C:here"
But when the file copies to the new folder it overwrites instead of appending a number at the end of each ratings.zil
– i.e. ratings(1).zil
, ratings(2).zil
. Is there a way to add a loop to the above code that will append a number after each file?
This question was originally marked as a duplicate, except the answer for the duplicate only works when you’re copying a file within the same folder.
windows batch-file cmd
I have the following code to search for a specific file name (ratings.zil) across multiple folders and copy them to a new folder:
for /R %f in (ratings.zil) do @IF EXIST %f copy "%f" "C:here"
But when the file copies to the new folder it overwrites instead of appending a number at the end of each ratings.zil
– i.e. ratings(1).zil
, ratings(2).zil
. Is there a way to add a loop to the above code that will append a number after each file?
This question was originally marked as a duplicate, except the answer for the duplicate only works when you’re copying a file within the same folder.
windows batch-file cmd
windows batch-file cmd
edited Nov 20 '18 at 18:48
double-beep
1,3332723
1,3332723
asked Nov 20 '18 at 8:59
Greeny
33
33
You could perhaps link the former question, so one could use the code from there... Anyway, what have you tried yourself to solve that issue?
– aschipfl
Nov 20 '18 at 9:12
@aschipfl OP delete the previous question.
– Gerhard Barnard
Nov 20 '18 at 9:13
@greeny, have a look here at DBenham's answer, you would just need to ammend the code to add yourratings.zil
instead.
– Gerhard Barnard
Nov 20 '18 at 9:14
Possible duplicate of Windows batch file to copy and keep duplicates
– LotPings
Nov 20 '18 at 9:17
@GerhardBarnard, thanks - I'll try...I'm not a programmer so that looks entirely confusing to me. Do the double % signs signify something that needs to be filled in with whatever is between the %%'s? i.e. %source% means I put the source path there instead of %source%?
– Greeny
Nov 20 '18 at 9:22
|
show 4 more comments
You could perhaps link the former question, so one could use the code from there... Anyway, what have you tried yourself to solve that issue?
– aschipfl
Nov 20 '18 at 9:12
@aschipfl OP delete the previous question.
– Gerhard Barnard
Nov 20 '18 at 9:13
@greeny, have a look here at DBenham's answer, you would just need to ammend the code to add yourratings.zil
instead.
– Gerhard Barnard
Nov 20 '18 at 9:14
Possible duplicate of Windows batch file to copy and keep duplicates
– LotPings
Nov 20 '18 at 9:17
@GerhardBarnard, thanks - I'll try...I'm not a programmer so that looks entirely confusing to me. Do the double % signs signify something that needs to be filled in with whatever is between the %%'s? i.e. %source% means I put the source path there instead of %source%?
– Greeny
Nov 20 '18 at 9:22
You could perhaps link the former question, so one could use the code from there... Anyway, what have you tried yourself to solve that issue?
– aschipfl
Nov 20 '18 at 9:12
You could perhaps link the former question, so one could use the code from there... Anyway, what have you tried yourself to solve that issue?
– aschipfl
Nov 20 '18 at 9:12
@aschipfl OP delete the previous question.
– Gerhard Barnard
Nov 20 '18 at 9:13
@aschipfl OP delete the previous question.
– Gerhard Barnard
Nov 20 '18 at 9:13
@greeny, have a look here at DBenham's answer, you would just need to ammend the code to add your
ratings.zil
instead.– Gerhard Barnard
Nov 20 '18 at 9:14
@greeny, have a look here at DBenham's answer, you would just need to ammend the code to add your
ratings.zil
instead.– Gerhard Barnard
Nov 20 '18 at 9:14
Possible duplicate of Windows batch file to copy and keep duplicates
– LotPings
Nov 20 '18 at 9:17
Possible duplicate of Windows batch file to copy and keep duplicates
– LotPings
Nov 20 '18 at 9:17
@GerhardBarnard, thanks - I'll try...I'm not a programmer so that looks entirely confusing to me. Do the double % signs signify something that needs to be filled in with whatever is between the %%'s? i.e. %source% means I put the source path there instead of %source%?
– Greeny
Nov 20 '18 at 9:22
@GerhardBarnard, thanks - I'll try...I'm not a programmer so that looks entirely confusing to me. Do the double % signs signify something that needs to be filled in with whatever is between the %%'s? i.e. %source% means I put the source path there instead of %source%?
– Greeny
Nov 20 '18 at 9:22
|
show 4 more comments
1 Answer
1
active
oldest
votes
Here is a slightly ammended version of DBenhams answer.
@echo off
setlocal disableDelayedExpansion
if "%~2" equ "" echo Error: Insufficient arguments>&2&exit /b 1
set "source=%~f1"
set "target=%~f2"
md "%target%"
set /a cnt=0
for /r "%source%" %%F in (ratings.zil) do if "%%~dpF" neq "%target%" (
if exist "%%F" (
if exist "%target%%%~nxF" (
set /a cnt+=1
set "full=%%F"
set "name=%%~nF"
set "ext=%%~xF"
setlocal enableDelayedExpansion
copy "!full!" "!target!!name!(!cnt!)!ext!" >nul
endlocal
) else copy "%%F" "%target%" >nul
)
)
In order to run this, you need to save the file as something like myRename.cmd
then simply open cmd.exe and run it as:
myRename.cmd "C:Source of files" "D:Destination"
If you perfer to place this in a set directory and have a static destination folder and be able to just double click it, then this will do:
@echo off
setlocal disableDelayedExpansion
set "target=C:here"
md "%target%"
set /a cnt=0
for /r %%F in (ratings.zil) do if "%%~dpF" neq "%target%" (
if exist "%%F" (
if exist "%target%%%~nxF" (
set /a cnt+=1
set "full=%%F"
set "name=%%~nF"
set "ext=%%~xF"
setlocal enableDelayedExpansion
copy "!full!" "!target!!name!(!cnt!)!ext!" >nul
endlocal
) else copy "%%F" "%target%" >nul
)
)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53389425%2floop-that-appends-filename-when-copying-same-filename-from-different-folders-to%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Here is a slightly ammended version of DBenhams answer.
@echo off
setlocal disableDelayedExpansion
if "%~2" equ "" echo Error: Insufficient arguments>&2&exit /b 1
set "source=%~f1"
set "target=%~f2"
md "%target%"
set /a cnt=0
for /r "%source%" %%F in (ratings.zil) do if "%%~dpF" neq "%target%" (
if exist "%%F" (
if exist "%target%%%~nxF" (
set /a cnt+=1
set "full=%%F"
set "name=%%~nF"
set "ext=%%~xF"
setlocal enableDelayedExpansion
copy "!full!" "!target!!name!(!cnt!)!ext!" >nul
endlocal
) else copy "%%F" "%target%" >nul
)
)
In order to run this, you need to save the file as something like myRename.cmd
then simply open cmd.exe and run it as:
myRename.cmd "C:Source of files" "D:Destination"
If you perfer to place this in a set directory and have a static destination folder and be able to just double click it, then this will do:
@echo off
setlocal disableDelayedExpansion
set "target=C:here"
md "%target%"
set /a cnt=0
for /r %%F in (ratings.zil) do if "%%~dpF" neq "%target%" (
if exist "%%F" (
if exist "%target%%%~nxF" (
set /a cnt+=1
set "full=%%F"
set "name=%%~nF"
set "ext=%%~xF"
setlocal enableDelayedExpansion
copy "!full!" "!target!!name!(!cnt!)!ext!" >nul
endlocal
) else copy "%%F" "%target%" >nul
)
)
add a comment |
Here is a slightly ammended version of DBenhams answer.
@echo off
setlocal disableDelayedExpansion
if "%~2" equ "" echo Error: Insufficient arguments>&2&exit /b 1
set "source=%~f1"
set "target=%~f2"
md "%target%"
set /a cnt=0
for /r "%source%" %%F in (ratings.zil) do if "%%~dpF" neq "%target%" (
if exist "%%F" (
if exist "%target%%%~nxF" (
set /a cnt+=1
set "full=%%F"
set "name=%%~nF"
set "ext=%%~xF"
setlocal enableDelayedExpansion
copy "!full!" "!target!!name!(!cnt!)!ext!" >nul
endlocal
) else copy "%%F" "%target%" >nul
)
)
In order to run this, you need to save the file as something like myRename.cmd
then simply open cmd.exe and run it as:
myRename.cmd "C:Source of files" "D:Destination"
If you perfer to place this in a set directory and have a static destination folder and be able to just double click it, then this will do:
@echo off
setlocal disableDelayedExpansion
set "target=C:here"
md "%target%"
set /a cnt=0
for /r %%F in (ratings.zil) do if "%%~dpF" neq "%target%" (
if exist "%%F" (
if exist "%target%%%~nxF" (
set /a cnt+=1
set "full=%%F"
set "name=%%~nF"
set "ext=%%~xF"
setlocal enableDelayedExpansion
copy "!full!" "!target!!name!(!cnt!)!ext!" >nul
endlocal
) else copy "%%F" "%target%" >nul
)
)
add a comment |
Here is a slightly ammended version of DBenhams answer.
@echo off
setlocal disableDelayedExpansion
if "%~2" equ "" echo Error: Insufficient arguments>&2&exit /b 1
set "source=%~f1"
set "target=%~f2"
md "%target%"
set /a cnt=0
for /r "%source%" %%F in (ratings.zil) do if "%%~dpF" neq "%target%" (
if exist "%%F" (
if exist "%target%%%~nxF" (
set /a cnt+=1
set "full=%%F"
set "name=%%~nF"
set "ext=%%~xF"
setlocal enableDelayedExpansion
copy "!full!" "!target!!name!(!cnt!)!ext!" >nul
endlocal
) else copy "%%F" "%target%" >nul
)
)
In order to run this, you need to save the file as something like myRename.cmd
then simply open cmd.exe and run it as:
myRename.cmd "C:Source of files" "D:Destination"
If you perfer to place this in a set directory and have a static destination folder and be able to just double click it, then this will do:
@echo off
setlocal disableDelayedExpansion
set "target=C:here"
md "%target%"
set /a cnt=0
for /r %%F in (ratings.zil) do if "%%~dpF" neq "%target%" (
if exist "%%F" (
if exist "%target%%%~nxF" (
set /a cnt+=1
set "full=%%F"
set "name=%%~nF"
set "ext=%%~xF"
setlocal enableDelayedExpansion
copy "!full!" "!target!!name!(!cnt!)!ext!" >nul
endlocal
) else copy "%%F" "%target%" >nul
)
)
Here is a slightly ammended version of DBenhams answer.
@echo off
setlocal disableDelayedExpansion
if "%~2" equ "" echo Error: Insufficient arguments>&2&exit /b 1
set "source=%~f1"
set "target=%~f2"
md "%target%"
set /a cnt=0
for /r "%source%" %%F in (ratings.zil) do if "%%~dpF" neq "%target%" (
if exist "%%F" (
if exist "%target%%%~nxF" (
set /a cnt+=1
set "full=%%F"
set "name=%%~nF"
set "ext=%%~xF"
setlocal enableDelayedExpansion
copy "!full!" "!target!!name!(!cnt!)!ext!" >nul
endlocal
) else copy "%%F" "%target%" >nul
)
)
In order to run this, you need to save the file as something like myRename.cmd
then simply open cmd.exe and run it as:
myRename.cmd "C:Source of files" "D:Destination"
If you perfer to place this in a set directory and have a static destination folder and be able to just double click it, then this will do:
@echo off
setlocal disableDelayedExpansion
set "target=C:here"
md "%target%"
set /a cnt=0
for /r %%F in (ratings.zil) do if "%%~dpF" neq "%target%" (
if exist "%%F" (
if exist "%target%%%~nxF" (
set /a cnt+=1
set "full=%%F"
set "name=%%~nF"
set "ext=%%~xF"
setlocal enableDelayedExpansion
copy "!full!" "!target!!name!(!cnt!)!ext!" >nul
endlocal
) else copy "%%F" "%target%" >nul
)
)
answered Nov 20 '18 at 9:33
Gerhard Barnard
6,91631131
6,91631131
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53389425%2floop-that-appends-filename-when-copying-same-filename-from-different-folders-to%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You could perhaps link the former question, so one could use the code from there... Anyway, what have you tried yourself to solve that issue?
– aschipfl
Nov 20 '18 at 9:12
@aschipfl OP delete the previous question.
– Gerhard Barnard
Nov 20 '18 at 9:13
@greeny, have a look here at DBenham's answer, you would just need to ammend the code to add your
ratings.zil
instead.– Gerhard Barnard
Nov 20 '18 at 9:14
Possible duplicate of Windows batch file to copy and keep duplicates
– LotPings
Nov 20 '18 at 9:17
@GerhardBarnard, thanks - I'll try...I'm not a programmer so that looks entirely confusing to me. Do the double % signs signify something that needs to be filled in with whatever is between the %%'s? i.e. %source% means I put the source path there instead of %source%?
– Greeny
Nov 20 '18 at 9:22