我需要将文件x.dtsx从位置a复制到位置b。
如果x.dtsx在b中已经存在,那么我需要将x.dtsx重命名为x_Standby.dtsx然后,在将x.dtsx重命名为b之后
我当前的代码如下所示:
if exists %1 rename %1 %(should be 1_standy.extension)
xcopy %1 %2
最佳答案
如果使用命令处理器扩展(在Windows 2000和更高版本中是默认设置),则可以使用以下可选语法:
%~1 - expands %1 removing any surrounding quotes (")
%~f1 - expands %1 to a fully qualified path name
%~d1 - expands %1 to a drive letter only
%~p1 - expands %1 to a path only
%~n1 - expands %1 to a file name only
%~x1 - expands %1 to a file extension only
%~s1 - expanded path contains short names only
%~a1 - expands %1 to file attributes
%~t1 - expands %1 to date/time of file
%~z1 - expands %1 to size of file
可以组合使用修饰符以获得复合结果:
%~dp1 - expands %1 to a drive letter and path only
%~nx1 - expands %1 to a file name and extension only
因此,您的命令将如下所示:
if exist %2\%~nx1 ren %2\%~nx1 %~n1_standby%~x1
关于batch-file - dos命令将文件名和扩展名分成变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8749637/