it-swarm.com.de

Der Zugriff wird verweigert, wenn del/f unter Windows 10 64bit verwendet wird

Ich werde 1.mp3 löschen, aber es gibt mir die Fehlermeldung "Zugriff verweigert".

Weitere Informationen über die Dauerwellen von Dateien:

attrib 1.mp3
A   C:\Users\Alipour\Desktop\1\1.mp3

Ich habe auch attrib -s -h 1.mp3 benutzt

es kann aber trotzdem nicht von gelöscht werden

del /f/s/q 1.mp3 > NUL

oder

del /f/s/q 1.mp3

oder

del /f 1.mp3
3

Es gibt verschiedene Methoden, um eine solche Datei zu entfernen:

1. Explorer verarbeiten, wenn die Datei verwendet wird:
Sie können ProcessExplorer von Windows Sysinternals verwenden, um festzustellen, welches Programm die Datei sperrt. Laden Sie den ProcessExplorer herunter und starten Sie ihn. Gehen Sie zu Find|Find Handle or DLL... Ctrl+F und geben Sie den Namen der gesperrten Datei ein: 1.mp3.

ProcessExplorer zeigt Ihnen den Prozess an, der für die Sperre verantwortlich ist, weil er auf die Datei zugreift. Wenn Sie den Prozess haben, töten Sie diesen und löschen Sie die Datei.

Beispiel mit MS Word, das auf eine Datei namens LockedFile.docx zugreift:
ProcessExplorerExample


2. Start im abgesicherten Modus:
Eine andere Möglichkeit besteht darin, in den abgesicherten Modus zu booten. In der Zeit vor Windows 8 wurde dies durch Drücken von ausgeführt F8 bevor Windows startet.
Ab Windows 8 können Sie drücken Shift+F8 bevor Windows bootet oder einfacher kann man es halten Shift und klicken Sie im Anmeldebildschirm oder sogar in Windows auf Neu starten. Wenn dies zu kurz war, schauen Sie hier wie Sie in den abgesicherten Modus gelangen.

Sobald Sie im abgesicherten Modus sind, können Sie erneut versuchen, diese Datei zu löschen.


3. Datei beim Windows-Start über PendingFileRenameOperations entfernen:
Mit PendingFileRenameOperations können Sie eine Datei beim Windows-Startvorgang umbenennen und sogar löschen, wenn nichts anderes auf diese Datei zugreifen und sie blockieren kann. PendingFileRenameOperations wird in die Windows-Registrierung eingetragen und besteht aus zwei Dateipfadenpaaren.

Sie können dies manuell wie unten beschrieben oder erneut mit einem Windows Sysinternals-Programm namens MoveFile tun. Laden Sie das Programm herunter und verwenden Sie es in einem Konsolenfenster (Start -> Ausführen oder Windows-Key+RGeben Sie cmd ein und drücken Sie ENTER).
Geben Sie movefile foo.exe "" ein, um eine Datei beim Neustart zu löschen.

Manuelle Methode über Registrierung:
Der 1. Pfad ist die Datei, die umbenannt werden soll.
Der 2. Pfad ist der neue Dateipfad. Wenn der 2. Pfad leer ist (0x0000), wird die Datei entfernt.

  1. Start -> Ausführen oder Windows-Key+R
  2. Geben Sie regedit ein und drücken Sie ENTER
  3. Gehe zu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
  4. Erstellen Sie einen neuen Multi-String-Wert : PendingFileRenameOperations
  5. Geben Sie als Daten \??\filepath ein (z. B. \??\C:\Users\xyz\Desktop\foo.exe).
  6. Drücke OK
  7. Klicken Sie mit der rechten Maustaste auf den Schlüssel und wählen Sie Binärdaten ändern .
  8. Fügen Sie am Ende der Hex-Zeichenfolge 0000 hinzu (4 Nullen, die eine leere Zeichenfolge darstellen)
  9. Drücke OK
  10. Starte deinen Computer neu
6
Andre Kampling

Lean and Mean Batch-Datei nur Alternativen für PendingFileRenameOperations :
~ Skripte fügen einen Eintrag zum Rechtsklick-Menü "SendTo" hinzu
~ Akzeptieren eines einzelnen Parameters, entweder Datei oder Ordner
~ Bestätigungsaufforderung ([Abbrechen], um vorherige Einträge zu löschen)
~ Grundlegende Idiotensicherheit (zB% Windir% nicht verarbeiten)

Rename_On_Boot.bat

goto="Batch" /* Rename_On_Boot by AveYo v1
:RenOnBoot
set "input=%*" & call set "input=%%input:?=%%"                            &rem line below adds entry to right-click -- "SendTo" menu
if /i "_%~dp0"=="_%APPDATA%\Microsoft\Windows\SendTo\" (set .=) else copy /y "%~f0" "%APPDATA%\Microsoft\Windows\SendTo\" >nul 2>nul
if "_%1"=="_" color 4f & echo   ERROR! No input provided & ping -n 6 localhost >nul & exit /b
for %%# in ("C:\" "C:\Boot" "C:\Recovery" "%WINDIR%" "%WINDIR%\system32" "%ProgramData%" "%ProgramFiles%" "%USERPROFILE%") do (
 if /i "_%input%"=="_%%~#" color 4f & echo   ERROR! %%# is not safe to delete & ping -n 6 localhost >nul & exit /b
)
color 0B & echo   Please wait, folders might take a while .. & call cscript /nologo /e:JScript "%~f0" RenOnBoot "%input%" & exit /b
:RenOnBoot_Run_As_Admin
color 4f & echo   Asking permission to run as Admin.. & call cscript /nologo /e:JScript "%~f0" RunAsAdmin "%~f1???" & exit /b
:"Batch"
@echo off & setlocal disabledelayedexpansion & mode 96,4 & echo. & title %~nx0 by AveYo & if not exist "%~f1" goto :RenOnBoot
reg query HKEY_USERS\S-1-5-20\Environment /v temp 1>nul 2>nul && goto :RenOnBoot || goto :RenOnBoot_Run_As_Admin
:"JScript" */
function RenOnBoot(f){
  var HKLM=0x80000002, k='SYSTEM\\CurrentControlSet\\Control\\Session Manager', v='PendingFileRenameOperations';
  var reg=GetObject('winmgmts:{impersonationLevel=impersonate}!//./root/default:StdRegProv'), ws=WSH.CreateObject('WScript.Shell');  
  var confirmation=ws.Popup(" Rename on next boot? [OK]\n Clear previous entries? [Cancel]\n\n "+f,0,'Rename_On_Boot by AveYo',33);
  if (confirmation == 2) { reg.DeleteValue(HKLM, k, v); WSH.quit(); } // Clear existing entries on Cancel press and quit script
  var mtd=reg.Methods_('GetMultiStringValue').InParameters.SpawnInstance_(); mtd.hDefKey=HKLM; mtd.sSubKeyName=k; mtd.sValueName=v;
  var query=reg.ExecMethod_('GetMultiStringValue', mtd), regvalue=(!query.ReturnValue) ? query.SValue.toArray():[,], entries=[];
  var fso=new ActiveXObject('Scripting.FileSystemObject'), fn=fso.GetAbsolutePathName(f);
  entries.Push('\\??\\'+fn,'\\??\\'+fn+'.ren');
  reg.CreateKey(HKLM, k); reg.SetMultiStringValue(HKLM, k, v, entries.concat(regvalue));
}
if (WSH.Arguments.length>=2 && WSH.Arguments(0)=='RenOnBoot') RenOnBoot(WSH.Arguments(1));

function RunAsAdmin(self, arguments) { WSH.CreateObject('Shell.Application').ShellExecute(self, arguments, '', 'runas', 1) }
if (WSH.Arguments.length>=1 && WSH.Arguments(0)=='RunAsAdmin') RunAsAdmin(WSH.ScriptFullName, WSH.Arguments(1));
//

Delete_On_Boot.bat

goto="Batch" /* Delete_On_Boot by AveYo v1
:DelOnBoot
set "input=%*" & call set "input=%%input:?=%%"                            &rem line below adds entry to right-click -- "SendTo" menu
if /i "_%~dp0"=="_%APPDATA%\Microsoft\Windows\SendTo\" (set .=) else copy /y "%~f0" "%APPDATA%\Microsoft\Windows\SendTo\" >nul 2>nul
if "_%1"=="_" color 4f & echo   ERROR! No input provided & ping -n 6 localhost >nul & exit /b
for %%# in ("C:\" "C:\Boot" "C:\Recovery" "%WINDIR%" "%WINDIR%\system32" "%ProgramData%" "%ProgramFiles%" "%USERPROFILE%") do (
 if /i "_%input%"=="_%%~#" color 4f & echo   ERROR! %%# is not safe to delete & ping -n 6 localhost >nul & exit /b
)
color 0B & echo   Please wait, folders might take a while .. & call cscript /nologo /e:JScript "%~f0" DelOnBoot "%input%" & exit /b
:DelOnBoot_Run_As_Admin
color 4f & echo   Asking permission to run as Admin.. & call cscript /nologo /e:JScript "%~f0" RunAsAdmin "%~f1???" & exit /b
:"Batch"
@echo off & setlocal disabledelayedexpansion & mode 96,4 & echo. & title %~nx0 by AveYo & if not exist "%~f1" goto :DelOnBoot
reg query HKEY_USERS\S-1-5-20\Environment /v temp 1>nul 2>nul && goto :DelOnBoot || goto :DelOnBoot_Run_As_Admin
:"JScript" */
function DelOnBoot(f){
  ListDir=function(src, _root,_list) {
    _root=_root || src, _list=_list || [];
    var root=fso.GetFolder(src), files=new Enumerator(root.Files), dirs=new Enumerator(root.SubFolders);
    while (!files.atEnd()) { _list.Push(files.item()); files.moveNext(); }
    while (!dirs.atEnd()) { _list=ListDir(dirs.item().path, _root,_list); _list.Push(dirs.item()); dirs.moveNext(); }
    return _list;
  };
  var HKLM=0x80000002, k='SYSTEM\\CurrentControlSet\\Control\\Session Manager', v='PendingFileRenameOperations';
  var reg=GetObject('winmgmts:{impersonationLevel=impersonate}!//./root/default:StdRegProv'), ws=WSH.CreateObject('WScript.Shell');  
  var confirmation=ws.Popup(" Delete on next boot? [OK]\n Clear previous entries? [Cancel]\n\n "+f,0,'Delete_On_Boot by AveYo',33);
  if (confirmation == 2) { reg.DeleteValue(HKLM, k, v); WSH.quit(); } // Clear existing entries on Cancel press and quit script
  var mtd=reg.Methods_('GetMultiStringValue').InParameters.SpawnInstance_(); mtd.hDefKey=HKLM; mtd.sSubKeyName=k; mtd.sValueName=v;
  var query=reg.ExecMethod_('GetMultiStringValue', mtd), regvalue=(!query.ReturnValue) ? query.SValue.toArray():[,], entries=[];
  var fso=new ActiveXObject('Scripting.FileSystemObject'), fn=fso.GetAbsolutePathName(f);
  if (fso.FolderExists(fn)) { var list=ListDir(fn); for (var i in list) entries.Push('\\??\\'+list[i],''); }
  entries.Push('\\??\\'+fn,'');
  reg.CreateKey(HKLM, k); reg.SetMultiStringValue(HKLM, k, v, entries.concat(regvalue));
}
if (WSH.Arguments.length>=2 && WSH.Arguments(0)=='DelOnBoot') DelOnBoot(WSH.Arguments(1));

function RunAsAdmin(self, arguments) { WSH.CreateObject('Shell.Application').ShellExecute(self, arguments, '', 'runas', 1) }
if (WSH.Arguments.length>=1 && WSH.Arguments(0)=='RunAsAdmin') RunAsAdmin(WSH.ScriptFullName, WSH.Arguments(1));
//
0
AveYo