我正在尝试执行以下操作:搜索目录并查找未提交的文件(新的,添加的或更新的)以及找到的每个文件,其中包含包含文件名称部分的标记。 (具有不同名称的不同文件格式为 _ _ *。*)。下划线之间的文件名部分是我想用作标记的部分,并在从文件名提交之前删除它。
目前我有以下内容:
@echo off
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION
set SOURCE=C:\Users\Public\Documents\AutomatedTests\File_listings_export\
set batsourse=C:\Users\Public\Documents\
set SVN=C:\Program Files\TortoiseSVN\bin\
set file_name=
set pkg_number=
set new_file_name=
set empty=Y
cd %SOURCE%
svn status | findstr "^?" >> %batsourse%newfiles.txt
for /f %%i in (%batsourse%newfiles.txt) do set empty=N
if %empty%==Y (
echo No new files. Nothing to commit. Exiting.
del %batsourse%\newfil*.txt
exit /b
)
for /f "tokens=* delims=?" %%a in (%batsourse%newfiles.txt) do echo %%a >> %batsourse%newfile1.txt
for /f "tokens=* delims= " %%a in (%batsourse%newfile1.txt) do echo %%a >> %batsourse%newfile2.txt
for /f "tokens=* delims=" %%a in (%batsourse%newfile2.txt) do (
set file_name=%%a
for /f "usebackq tokens=2* delims=_" %%b in (%batsourse%newfile2.txt) do (
setlocal ENABLEDELAYEDEXPANSION
call set pkg_number=%%b
call set new_file_name=%%file_name:!pkg_number!=%%
move /y !file_name! !new_file_name!
endlocal
cd %SOURCE%
svn add . --force
svn up
svn commit -m "Product pkg number: "%%b --targets %SOURCE%"*__*.*"
svn up
)
)
del %batsourse%\newfil*.txt
exit /b
不确定我做错了什么,但每个文件的提交都不起作用。它实际上使用第一个标签提交所有文件......
感谢。
答案 0 :(得分:0)
您的代码未指定要提交的文件,您执行大量svn add .
和svn commit
而没有文件名作为参数。更改您的代码,以便
svn add %filename%
然后
svn ci %filename% -m %tag%