Работа с командным файлом за последние 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>
результат сценария партии Аасини:
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 . . .
При этом удаляются все файлы в папке.