2015-12-09 6 views
0

Я пытаюсь использовать AgeStore для удаления некоторых файлов с истекшим символом. Я написал сценарий Powershell, в котором команда AgeStore работает иногда, но не всегда.AgeStore не удаляет файлы с отсроченным отсроченным отсрочкой

Например, мое хранилище символов содержит файлы символов, относящиеся к 2010 году. Я хотел бы очистить символы «истекшего», потому что они больше не нужны. С этой целью я использую аргумент командной строки -date, чтобы указать «-date = 10-01-2010». Кроме того, я использую «-l», чтобы заставить AgeStore к

Причины AgeStore не удалять файлы, а просто перечислить все файлы, которые будут удалены, если это та же команда была запущена без - л.

Вот фрагмент кода сценария, который работает ...

$AgeStore = "$DebuggingToolsPath\AgeStore" 
$asArgs = "`"$SymbolStorePath`" -date=$CutoffDate -s -y " 
if ($WhatIf.IsPresent) { $asArgs += "-l" } 

# determine size of the symbol store before delete operation. 
Write-Verbose ">> Calculating current size of $SymbolStorePath before deletion.`n" -Verbose 
">> $SymbolStorePath currently uses {0:0,0.00} GB`n" -f (((Get-ChildItem -R $SymbolStorePath | measure-object length -Sum).Sum/1GB)) 

Write-Verbose ">> Please wait...processing`n`n" -Verbose 
& $AgeStore $asArgs 

При выполнении приведенного выше кода, она возвращает следующий результат ...

обработки всех файлов последнего доступа, прежде чем 10-01 -2010 12:00 AM

0 байт будет удалено

Программа «RemoveOldDebugSymbols.ps1: PowerShell Script» вышла из с кодом 0 (0x0).

Я проверял, что в хранилище символов есть файлы символов с датами раньше, чем «10-01-2010». Я впоследствии пробовал тот же эксперимент с другой датой отсечения, «11-01-2015», и вывод указывает, что есть несколько файлов, которые удалили бы, но не те, которые с 2010 года. м в убытке относительно того, что может вызвать несоответствие.

Кто-нибудь пытался удалить файлы символов из хранилища символов с помощью AgeStore? Если это так, вы столкнулись с этой проблемой? Как вы это разрешили?

ответ

0

Я попытался разрешить это различными способами, используя AgeStore. Для продвижения вперед с проектом я решил переписать сценарий для использования команды SymStore с транзакцией удаления. В принципе, я создал список операций с отладочными символами, которые нужно удалить, и написал цикл, который выполняет итерацию по списку и удаляет каждую запись по одному.

Надеюсь, это поможет каждому, кто сталкивается с теми же проблемами.

EDIT: По запросу .... Я не могу опубликовать весь скрипт, но я использовал следующий код в цикле в качестве замены для команды AgeStore.

$ssArgs = ".\symstore.exe del /i $SymbolEntryTransactionID /s `"$SymbolStorePath`"" 
Invoke-Expression $ssArgs 
+0

Не могли бы вы разместить сценарий, который вы написали? Возможно, другие сталкиваются с тем же вопросом. – magicandre1981