Czy istnieje sposób na zablokowanie pliku za pomocą narzędzi pokładowych, aby nie można go było usunąć ani zastąpić?
Do testowania skryptów kopiujących muszę lock files temporarily
sprawdzić obsługę błędów w skryptach. Do XP użyłem ładowania pliku do debug.exe, aby go zablokować.
Czy jest jakiś sposób w Windows 7 (i nowszych)?
Edytuj
Wiem, że robią to programy. Moje pytanie brzmi, czy w systemie Windows jest wbudowany mechanizm. Czasami muszę sprawdzić skrypt na komputerze i nie chcę instalować w tym celu nowych programów.
Edytuj2
Oto również dobre sugestie: Jak celowo wyłączać wyłącznie plik? , które jednak potrzebują narzędzi innych firm lub zmienią plik, który ma zostać zablokowany.
windows-7
filesystems
lock
wiggle marsh
źródło
źródło
Odpowiedzi:
Myślę, że PowerShell jest prawdopodobnie najładniejszym sposobem na osiągnięcie tego. Coś w stylu:
Po wstrzymaniu powyższy skrypt powoduje wyświetlenie następującego monitu podczas próby otwarcia pliku „mój_plik.txt”:
źródło
File::Open
metody wyszczególniającej parametry wywołania (konkretnie ostatni argument'None'
, odmawia udostępnienia pliku innym wątkom / procesom - i podobnie istnieją przepisy blokujące plik tylko do odczytu / zapisu lub ich kombinacja).$host.UI.RawUI.ReadKey(...)
nie powiedzie się w programie PowerShell ISE, ponieważ ReadEey nie jest zaimplementowany dla ISE. Obejściem jest[void](Read-Host 'Press Enter to continue')
. Niezupełnie to samo, co użytkownik musi nacisnąć klawisz Enter zamiast dowolnego klawisza. Jednak wystarcza do większości celów. Obejście tego problemu pochodzi z tego postu na blogu: jeffwouters.nl/index.php/2016/06/…Ponieważ nie lubię instalować oprogramowania, którego tak naprawdę nie będę używać, znalazłem ten klejnot VBScript:
Wszystkie podziękowania należą się Torgeir Bakken, pełny post można zobaczyć tutaj: http://www.pcreview.co.uk/threads/how-to-lock-files.1518829/
źródło
Czy nie możesz oznaczyć go jako tylko do odczytu? To skutecznie „zablokuje” plik, uniemożliwiając jego zmianę lub usunięcie.
Polecenie attrib.exe jest dostępne w wierszu polecenia i pozwala ustawić plik lub katalog jako tylko do odczytu. Więcej informacji na temat tego polecenia można znaleźć tutaj
I odwrotnie, możesz zrobić to samo za pomocą GUI, klikając prawym przyciskiem myszy plik lub katalog, który chcesz oznaczyć jako tylko do odczytu, wybierając właściwości i zaznaczając pole Tylko do odczytu. Kliknięcie przycisku Zastosuj / Ok powoduje zastosowanie nowego ustawienia do pliku lub katalogu.
źródło
Czy nie można ograniczyć dostępu do pliku za pomocą karty Zabezpieczenia, gdy klikniesz prawym przyciskiem myszy i przejdziesz do Właściwości pliku lub folderu?
Jeśli użytkownik ma dostęp administratora do komputera, to czy nie pozwoli mu to usunąć wszystkich innych możliwości robienia czegokolwiek z plikiem / folderem?
Muszę przyznać, że podczas pisania mój komputer stacjonarny nadal działa na WinXP Pro, więc to, co powiedziałem powyżej, może już nie być dostępne - nadal nie czuję się tak dobrze z moim nowym Win 8.1 Pro w domu, jak z lata pracy z Win XP
źródło
W niektórych scenariuszach utworzenie nowego folderu z nazwą pliku może wykonać zadanie. (Tzn. Wystąpił błąd podczas próby otwarcia pliku).
źródło