Svn 使用通配符复制时获取文件的全名

Svn 使用通配符复制时获取文件的全名,svn,batch-file,Svn,Batch File,我有一个批处理文件,我在其中使用xcopy移动一些文件。问题是,在使用xcopy时,我使用了通配符,因为我不知道文件扩展名,但知道文件名。但是,我需要知道完整的文件名,以便执行下一个命令,在本例中,将其添加到svn 以下是批处理的此片段当前的外观: xcopy /q /y C:\path\to\file\image.* D:\svn\folder svn add D:\svn\folder\image.??? <-- not sure what to do here xcopy/q/

我有一个批处理文件,我在其中使用
xcopy
移动一些文件。问题是,在使用
xcopy
时,我使用了通配符,因为我不知道文件扩展名,但知道文件名。但是,我需要知道完整的文件名,以便执行下一个命令,在本例中,将其添加到svn

以下是批处理的此片段当前的外观:

xcopy /q /y C:\path\to\file\image.* D:\svn\folder
svn add D:\svn\folder\image.???   <-- not sure what to do here
xcopy/q/y C:\path\to\file\image.*D:\svn\folder

svn添加D:\svn\folder\image 您可以将代码封装在for循环中,该循环只对您感兴趣的文件进行迭代

FOR %%F in ("C:\path\to\file\image.*") do (
    xcopy /q /y %%F D:\svn\folder
    svn add D:\svn\folder\%%~nxF
)
在循环内部,您可以使用迭代变量本身引用文件的完整路径名(在我的示例中为
%%F
)。要引用扩展名为的裸文件名,请在变量名(
%%~nxF
)之前插入
~nx

另一个选项是在变量中获取文件名和扩展名:

FOR %%F in ("C:\path\to\file\image.*") do set FILENAME=%%~nxF
xcopy /q /y C:\path\to\file\%FILENAME% D:\svn\folder
svn add D:\svn\folder\%FILENAME%

使用这种方法,您必须在代码中重复目录名
C:\path\to\file\
,或者将其放入另一个变量中并重用它。

您可以将代码包装在一个for循环中,该循环只对您感兴趣的文件进行迭代

FOR %%F in ("C:\path\to\file\image.*") do (
    xcopy /q /y %%F D:\svn\folder
    svn add D:\svn\folder\%%~nxF
)
在循环内部,您可以使用迭代变量本身引用文件的完整路径名(在我的示例中为
%%F
)。要引用扩展名为的裸文件名,请在变量名(
%%~nxF
)之前插入
~nx

另一个选项是在变量中获取文件名和扩展名:

FOR %%F in ("C:\path\to\file\image.*") do set FILENAME=%%~nxF
xcopy /q /y C:\path\to\file\%FILENAME% D:\svn\folder
svn add D:\svn\folder\%FILENAME%
使用这种方法,您必须在代码中重复目录名
C:\path\to\file\
,或者将其放入另一个变量中并重用它