Работаю с пакетным файлом за последние 2 дня, но безуспешно :(
Мне нужен скрипт (Bat), который удалит все проекты (в основном vb), не упомянутые в моем списке сборки (xml).
Например: у меня есть папка с именем C:\123, в которой около 15 файлов. У меня есть список сборки (XML-файл), в котором есть 10 имен файлов, которые находятся в C:\123. Теперь мне нужен сценарий пакетного файла, который удалит остальные 5 файлов из C:\123, которых нет в файле xml.
Любая помощь будет оценена! скрипт пытался сравнить 2 папки и сначала удалить идентичные файлы (подумал о настройке позже в соответствии с моими потребностями, но это не сработало)
@ECHO OFF
SET LOCALFOLDER=C:\123
SET OTHERFOLDER=D:\123
Pause
:LOCALKEYTEMP
SET FILE=DONE
:: THIS LINE SCANS THE LOCAL FOLDER FOR FILES,
:: WE CAN USE THIS TO SCAN SEPERATE FILES ONE AT A
TIME
FOR /F "TOKENS=*" %%G IN ('DIR/B ^"%LOCALFOLDER%
\*.*^"') DO SET FILE=%%G
Pause
ECHO %FILE%
pause
IF %FILE%==DONE GOTO END
pause
ECHO N|COMP "%LOCALFOLDER%\%FILE%"
"%OTHERFOLDER%\%FILE%" | FIND "FILES COMPARE OK" >
NUL
pause
IF ERRORLEVEL 1 GOTO DIFFERENTKEYS
IF ERRORLEVEL 0 GOTO DELETEBOTH
pause
DELETEBOTH
DEL /Q "%LOCALFOLDER%\%FILE%"
DEL /Q "%OTHERFOLDER%\%FILE%"
GOTO LOCALKEYTEMP
DIFFERENTKEYS
:: THIS LINE DELETES THE LOCAL FOLDERS FILES WHICH IS
NECCESSARY FOR THIS SCRIPT
DEL /Q "%LOCALFOLDER%\%FILE%"
GOTO LOCALKEYTEMP
:END
ECHO ALL FILES SHOULD BE DELETED FROM
%LOCALFOLDER%
pause
ECHO ALL DIFFERENT FILES SHOULD BE LEFT ON
%OTHERFOLDER%
PAUSE
EXIT
xml-файл выглядит так:
<ProjectsToBuild>
<Project>C:\123\Clients\Direct\App1.vbproj</Project>
<Project>C:\123\Clients\Direct\App2.vbproj</Project>
</ProjectsToBuild>
результат пакетного сценария Aacini:
Press any key to continue . . .
List of existent files:
fileName[D:\123\Subfolder1\a1.txt.txt]=1
fileName[D:\123\Subfolder1\a2.txt.txt]=1
fileName[D:\123\Subfolder1\a3.txt.txt]=1
fileName[D:\123\Subfolder1\a4.txt.txt]=1
fileName[D:\123\Subfolder1\buildList.xml]=1
fileName[D:\123\Subfolder2\a1.txt.txt]=1
fileName[D:\123\Subfolder2\a2.txt.txt]=1
fileName[D:\123\Subfolder2\a3.txt.txt]=1
fileName[D:\123\Subfolder2\a4.txt.txt]=1
fileName[D:\123\Subfolder2\buildList.xml]=1
Press any key to continue . . .
Keep these files:
Press any key to continue . . .
Remove these files:
Press any key to continue . . .
Press any key to continue . . .
Это удалит все файлы в папке.