Wenn Sie etwas möchten, das Sie über das Kontextmenü tun können, können Sie auf folgende Weise Zeit sparen, wenn Sie versuchen, dies häufig zu tun:
Erstellen Sie eine Batchdatei RemoveSysAttrib.bat
@echo off
attrib -s "%1%"
Befolgen Sie dann diese Anleitung, um dem Kontextmenü eine benutzerdefinierte App hinzuzufügen: Hinzufügen einer beliebigen Anwendung zum Windows-Desktop- Kontextmenü
Sie könnten dann einen Menüpunkt namens "Systemattribut entfernen" haben, der genau das unter Verwendung Ihrer Batch-Datei tut. Auf diese Weise können Sie auch ein Skript erstellen, um das Attribut wieder hinzuzufügen. Es könnte etwas umständlich sein, es für mehrere Dateiauswahlen zum Laufen zu bringen, aber mit etwas Glück wird Ihre Datei für jedes ausgewählte Element einmal gestartet. Sie möchten dies testen mit:
@echo off
echo %1%
pause
Wenn die Dateinamen als Attribut 1, 2, 3 usw. angegeben werden, müssen Sie alle Parameter durchlaufen. Wenn mehr als ein Parameter angegeben wird, können Sie Ihr Skript rekursiv wie folgt aufrufen:
if NOT "%2%"=="" (
for %%A in (%*) do (
RemoveSysAttrib.bat "%%A"
)
) else (
attrib -s "%1%"
)
Hoffe das hilft =)
Als Antwort auf die Kommentare von Synetech:
Wenn Sie verwenden attrib
, werden die Einstellungen H
oder nicht geändert S
, wenn die andere Einstellung festgelegt ist (es wird angezeigt, dass die XXXX-Datei nicht zurückgesetzt wird ). Sie müssten beide entfernen (oder festlegen) und dann diejenige, die Sie nicht ändern wollten, wieder auf den vorherigen Wert zurücksetzen.
Ich habe das Skript erweitert, um das vom Windows 7- attrib
Befehl gemeldete Attribut 'H' zu überprüfen . Um es allgemeiner zu gestalten, müssten Sie mehr Teilstring-Positionen überprüfen, da ich die Vermutung habe, dass es in anderen Versionen anders ist. Ich habe momentan keine anderen Windows-Versionen zur Hand, daher kann ich das nicht überprüfen.
@echo off
setlocal enabledelayedexpansion
:: Check if file is hidden - works on Windows 7
set hidden=0
for /f "delims=" %%A in ('attrib "%1%"') do (
set attr=%%A
if "!attr:~4,1!"=="H" set hidden=1
)
:: If file is hidden, remove both attributes, then hide again.
if %hidden%==1 (
attrib -S -H "%1%"
attrib +H "%1%"
) else (
attrib -S "%1%"
)
endlocal