dos command to sperate file name and extension into variables

六月ゝ 毕业季﹏ 提交于 2019-12-18 10:56:31

问题


I need to copy a file x.dtsx from location a to location b.

If x.dtsx already exists in b then I need to rename x.dtsx to x_Standby.dtsx Then, after renaming copy x.dtsx to b

My current code looks like this:

if exists %1 rename %1 %(should be 1_standy.extension)
xcopy %1 %2

回答1:


If you use the Command Processor Extensions (which is default on Windows 2000 and later) then you can use the following optional syntax:

%~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

The modifiers can be combined to get compound results:

%~dp1       - expands %1 to a drive letter and path only
%~nx1       - expands %1 to a file name and extension only

So your command would look something like this:

if exist %2\%~nx1 ren %2\%~nx1 %~n1_standby%~x1


来源:https://stackoverflow.com/questions/8749637/dos-command-to-sperate-file-name-and-extension-into-variables

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!