AVanti473
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору insorg Цитата: Понятно. В принципе, не без помощи конечно, отыскал в FAQ Q103-2, но, немножечко "докрутил" его до более привычного вида объявив переменные и заменив одну из них (чисто в эстетических целях). Получилось как-то так: Код: Function OnLastProcessExit Dim fso, Origin, LastSlash, FolderName Set fso = CreateObject("Scripting.FileSystemObject") Origin = GetEnvironmentVariable("TS_ORIGIN") : Origin = Left(Origin, len (Origin) - 4) & "\" LastSlash = InStrRev(Origin, "\") FolderName = Left(Origin, LastSlash) + "%Temp%" If fso.FolderExists(FolderName) Then fso.DeleteFolder FolderName End If End Function | В принципе - работает. Немного не могу объяснить себе почему переменной Origin два раза присваивается значение в строке с конкатенацией, и что означает всё остальное выражение после двоеточия Как я понимаю, в первой части выражения переменная Origin получает полный путь до исполнительного файла сборки, включая его название. Потом, через конкатенацию, переменная меняет значение с учётом её предыдущего содержимого, отнимая у исполнительного файла расширение и точку (4 символа). Ну а далее по скрипту подставляется слеш и путь продливается до папки %Temp% Здорово, если, как в моём случае, имя исполнительного файла совпадает с названием папки песочницы... Если же нет, я так понимаю, этот фокус уже не пройдёт... Но, в моём случае - вроде всё работает, ведь исполнительный файл сборки на самом деле одноимённый с песочницей .dat-файл. |