Je vais supprimer 1.mp3 mais cela me donne l'erreur "Accès refusé".
Plus d'informations sur les permanentes de fichiers:
attrib 1.mp3
A C:\Users\Alipour\Desktop\1\1.mp3
J'ai aussi utilisé attrib -s -h 1.mp3
mais il ne peut toujours pas être supprimé par
del /f/s/q 1.mp3 > NUL
ou
del /f/s/q 1.mp3
ou
del /f 1.mp3
Il existe plusieurs méthodes pour supprimer un tel fichier:
1. Process Explorer si le fichier est en cours d'utilisation:
Vous pouvez utiliser ProcessExplorer à partir de Windows Sysinternals pour identifier le programme qui verrouille le fichier. Téléchargez et démarrez ProcessExplorer, accédez à Find|Find Handle or DLL... Ctrl+F
et entrez le nom du fichier verrouillé: 1.mp3
.
ProcessExplorer vous montrera le processus responsable du verrouillage en raison de l'accès au fichier. Si vous avez le processus, tuez-le et supprimez le fichier.
Exemple avec MS Word accédant à un fichier appelé LockedFile.docx :
2. Démarrage en mode sans échec:
Une autre possibilité consiste à démarrer en mode sans échec. Avant Windows 8, cela était fait en appuyant sur F8 avant le démarrage de Windows.
Sous Windows 8 et supérieur, vous pouvez appuyer sur Shift+F8 avant que Windows ne démarre ou plus facilement, vous pouvez tenir Shift et cliquez sur Redémarrer dans l'écran de connexion ou même dans Windows. Si cela était trop court, regardez ici comment entrer en mode sans échec.
Une fois que vous êtes en mode sans échec, vous pouvez réessayer de supprimer ce fichier.
3. Supprimer le fichier au démarrage de Windows via PendingFileRenameOperations:
Avec PendingFileRenameOperations, vous pouvez renommer et même supprimer un fichier à la procédure de démarrage Windows lorsque rien d’autre ne peut accéder à ce fichier et le bloquer. PendingFileRenameOperations sera entré dans le registre Windows et consiste en des paires de chemins de fichiers.
Vous pouvez le faire manuellement comme décrit ci-dessous ou à nouveau avec un programme Windows Sysinternals appelé MoveFile . Téléchargez ce programme et utilisez-le dans une fenêtre de la console (Démarrer -> Exécuter ou Windows-Key+R, tapez cmd
et appuyez sur ENTER).
Tapez movefile foo.exe ""
pour supprimer un fichier au redémarrage.
Méthode manuelle via registre:
Le 1er chemin est le fichier à renommer.
Le 2ème chemin est le nouveau chemin de fichier. Si le deuxième chemin est vide (0x0000), le fichier est supprimé.
regedit
et appuyez sur ENTERHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
PendingFileRenameOperations
\??\filepath
en tant que données (par exemple \??\C:\Users\xyz\Desktop\foo.exe
)0000
(4 zéros qui représentent une chaîne vide).Lean and mean} Alternatives alternatives au fichier de commandes uniquement pour PendingFileRenameOperations :
~ Les scripts ajouteront une entrée pour cliquer avec le bouton droit de la souris sur le menu "Envoyer à"
~ Accepter un seul paramètre, Fichier ou Dossier
~ Invite de confirmation ([Annuler] pour effacer les entrées précédentes)
~ Imperméabilisation de base des idiots (ne traitez pas% Windir% par exemple)
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));
//
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));
//