如何在命令行上将文件名和扩展名分隔为变量



我需要将文件x.dtsx从位置a复制到位置b。

如果x.dtsx已经存在于b中,那么我需要将x.dtsxs重命名为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

最新更新