Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Is there an easy way to swap the file names of two files in Windows? Perhaps using the move command in the shell?
Preferably without using external software.

Example: I have fileA.txt and fileB.txt. After the operation, fileA.txt is now called fileB.txt, and vice versa.

share|improve this question

2 Answers 2

up vote 4 down vote accepted

Simple 3 step process in Windows:

ren a.txt a.tmp
ren b.txt a.txt
ren a.tmp b.txt

You can run this directly or save it to a batch file.

share|improve this answer

Here is while 3 (three) steps combined into single command line:

@ren a.txt temp.tmp & @ren b.txt a.txt & @ren temp.tmp a.txt

Here is switch-filename.cmd might be usabled:

@echo off
if not "%4"=="" call :help %0
if "%3"=="/?" call :help %0
if "%2"=="/?" call :help %0
if "%1"=="/?" call :help %0
if "%1"=="" call :help %0
if "%1"=="" goto :eof
if "%2"=="" call :help %0
if "%2"=="" goto :eof
setlocal
if "%3"=="" set ch=echo
if "%3"=="#ok#" set ch=
call :v1 %1 %2
endlocal
echo.
echo [%date% %time%] Completed!
goto :eof
:help
echo.
echo Syntax: %1 FullPath\FileName01.Ext FileName02.Ext [enter]
echo.
echo         %1 C:\Win\Temp\SapGui_v1.txt SapGui_v5.txt [enter]
echo.
echo         %1 \\Svr\Tmp\GuiSAP_v0.txt GuiSAP_v9.txt [enter]
echo.
goto :eof
:v0
%ch% ren %1 tmp_%~n1%~x1
%ch% ren %2 %~n1%~x1
%ch% ren %~p1tmp_%~n1%~x1 %~n2%~x2
goto :selesai
:v1
set f01=%1
set f02=%2
echo f01 = %f01%
echo f02 = %f02%
%ch% ren %1 tmp_%~n1%~x1
if "%f01:~0,2%"=="\\" (
  %ch% ren \\%~p1%2 %~n1%~x1
  %ch% ren \\%~p1tmp_%~n1%~x1 %~n2%~x2
) else (
  %ch% ren %~p1%2 %~n1%~x1
  %ch% ren %~p1tmp_%~n1%~x1 %~n2%~x2
)
echo.
echo f01 = %f01%
echo       %f01:~0,2%
echo f02 = %f02%
echo       %f02:~0,2%
set f01=
set f02=
goto :eof

Any idea for improvement are welcome. :)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.