Подолгу не удаляются exe-файлы по Shift+Del в Windows 7
Модераторы: CaptainFlint, Nik, d-view, Моторокер, Avada
Вот csv-log по фильтру. Пишите кто что думает.
Копировался файл C:\1\totalcmd.exe в C:\2\. Потом происходила попытка удаления с шифтом C:\2\totalcmd.exe.
Копировался файл C:\1\totalcmd.exe в C:\2\. Потом происходила попытка удаления с шифтом C:\2\totalcmd.exe.
Batya
Без проблем. Правда у меня кнопка с твоим скриптом.
Без проблем. Правда у меня кнопка с твоим скриптом.
Лучше в PML лог выложить - можно будет загрузить его в Process Monitor и использовать его возможности просмотра/фильтрации и т.п. И копировать не файл тотала, а файл с произвольным именем - а то получается, что почти в каждой строчке есть обращение к totalcmd.exe. 
А какой режим копирования в тотале стоит? Странно, что нет ни одного вызова API типа CopyFile или CopyFileEx. О-о, похоже на старый режим через ReadFile/WriteFile. Компактнее был бы лог, если бы через новый стандартный метод.
Кстати, вызова DeleteFile я тоже что-то не вижу...
Ага, похоже, он подразумевается в операции SetDispositionInformationFile. Но там идет обращение к C:\1\totalcmd.exe...
ОК, облегчим себе задачу. Открываем консоль в папке с тестовым файлом testfile.exe и пустой подпапкой 1. Включаем лог. Выполняем команды:
Останавливаем и сохраняем лог. Изучаем - так он намного короче. 
А какой режим копирования в тотале стоит? Странно, что нет ни одного вызова API типа CopyFile или CopyFileEx. О-о, похоже на старый режим через ReadFile/WriteFile. Компактнее был бы лог, если бы через новый стандартный метод.
Кстати, вызова DeleteFile я тоже что-то не вижу...
Ага, похоже, он подразумевается в операции SetDispositionInformationFile. Но там идет обращение к C:\1\totalcmd.exe...
ОК, облегчим себе задачу. Открываем консоль в папке с тестовым файлом testfile.exe и пустой подпапкой 1. Включаем лог. Выполняем команды:
Код: Выделить всё
copy testfile.exe 1
del 1\testfile.exeНу так фильтр только по path. А то, что имя процесса Totalcmd.exe - ничего удивительного, я же из него пытаюсь выполнить данные операции. А csv можно в обычном блокноте смотреть, и размер у него в 10 раз меньше. Ну, раз запросил - даю.MVV писал(а):Лучше в PML лог выложить - можно будет загрузить его в Process Monitor и использовать его возможности просмотра/фильтрации и т.п. И копировать не файл тотала, а файл с произвольным именем - а то получается, что почти в каждой строчке есть обращение к totalcmd.exe.
Стоял "Также использовать режим больших файлов". Хотя в данном случае неважно какой режим в TC, если в Проводнике при копировании и удалении та же картина.MVV писал(а):А какой режим копирования в тотале стоит?
По ссылке выше - он.MVV писал(а):Компактнее был бы лог, если бы через новый стандартный режим.
Ок, извиняюсь, в спешке не подумал насчёт ужатия. Новый лог.
Что-то не то. Не вижу записи в новый файл. Папка 1 точно существовала в текущей папке во время выполнения первой команды? Судя по логу, копирование выполнялось в файл C:\1\1, а не в файл C:\1\1\testfile.exe - но это значит, что расширение подопытного было не exe.
Уточняю. Файл testfile.exe и папка 1 должны быть рядом в одной папке, которая должна быть текущей во время выполнения описанных команд. Тогда копироваться файл будет с тем же именем в подпапку 1, и удаляться оттуда же.
Уточняю. Файл testfile.exe и папка 1 должны быть рядом в одной папке, которая должна быть текущей во время выполнения описанных команд. Тогда копироваться файл будет с тем же именем в подпапку 1, и удаляться оттуда же.
Исправил с учётом уточнений.
По идее, файл должен был удалиться...
Может, стоит записывать лог до того как файл вернется? Тогда для тестов можно использовать батник вида:
Может, стоит записывать лог до того как файл вернется? Тогда для тестов можно использовать батник вида:
Код: Выделить всё
@echo off
md 1
copy testfile.exe 1
del 1\testfile.exe
:again
echo press a key to check if file exists...
pause
if not exist 1\testfile.exe goto again
echo.
echo STOP LOG!
pause
Так я тестирую с cmd, а не с Проводником. Откуда мне знать, в какой момент пропадает файл в окне Explorer-a? Хотя если учесть, что происходит это в считанные дс, то лог от этого точно не мог пострадать.
Добавлю ещё один нюанс. После попытки удалить с шифтом в свойствах exe-файла на вкладке \Безопасность\ всё пропадает и появляется лишь надпись "У вас нет разрешения на просмотр или изменение текущих разрешений для этого объекта".
Добавлено: Проблема решена включением службы Информация о совместимости приложений. Если же нужно её держать отключённой, то действуем так: команда gpedit.msc > Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Совместимость приложений > включаем "Отключение обработчика совместимости приложений" и "Отключение помощника по совместимости программ", перезагружаем винду. При этом в свойствах файла исчезнет вкладка "Совместимость".
Источник.
Добавлю ещё один нюанс. После попытки удалить с шифтом в свойствах exe-файла на вкладке \Безопасность\ всё пропадает и появляется лишь надпись "У вас нет разрешения на просмотр или изменение текущих разрешений для этого объекта".
Добавлено: Проблема решена включением службы Информация о совместимости приложений. Если же нужно её держать отключённой, то действуем так: команда gpedit.msc > Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Совместимость приложений > включаем "Отключение обработчика совместимости приложений" и "Отключение помощника по совместимости программ", перезагружаем винду. При этом в свойствах файла исчезнет вкладка "Совместимость".
Источник.