コマンドプロンプトを使用せずにファイルの「システム」ファイル属性を削除することは可能ですか?基本的に、私はこれをしたいです:
attrib "folder" -s
attrib "file" -s
コマンドプロンプト、またはバッチファイルを使用しません。 Windowsエクスプローラーのプロパティメニューでは、これを非表示の属性と読み取り専用の属性に対して行うことができます。システム属性を使用して行う方法はありますか?
コンテキストメニューから実行できる操作が必要な場合は、次の方法で時間を節約できます。
バッチファイルを作成するRemoveSysAttrib.bat
@echo off
attrib -s "%1%"
次に、このガイドに従ってカスタムメニューをコンテキストメニューに追加します。 Windowsデスクトップの右クリックメニューにアプリケーションを追加する方法
次に、バッチファイルを使用して、 "システム属性の削除"というメニュー項目を作成します。このように、属性を元に戻すスクリプトを作成することもできます。複数のファイル選択で機能するようにするのは少し面倒かもしれませんが、少し運が良ければ、選択したアイテムごとにファイルが1回起動されます。あなたはこれでテストしたいでしょう:
@echo off
echo %1%
pause
属性1、2、3などとしてファイル名を提供する場合は、すべてのパラメーターをループする必要があります。複数のパラメーターが指定されている場合、次のようにスクリプトを再帰的に呼び出すことができます。
if NOT "%2%"=="" (
for %%A in (%*) do (
RemoveSysAttrib.bat "%%A"
)
) else (
attrib -s "%1%"
)
それが役立つことを願っています=)
Synetechのコメントに応じて:
attrib
を使用する場合、もう一方が設定されていればH
またはS
設定は変更されません(つまり、not resetting XXXX fileと表示されます)。 )。両方を削除(または設定)してから、変更したくないものを以前の状態に戻す必要があります。
スクリプトを拡張して、Windows 7のattrib
コマンドによって報告された「H」属性をチェックしました。それをより一般的にするには、他のバージョンとは異なるという予感があるので、より多くの部分文字列の位置を確認する必要があります。現在、他のバージョンのWindowsが手元にないため、確認できません。
@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
これをインストールします: http://www.nirsoft.net/utils/bulkfilechanger.Zip
または http://www.nirsoft.net/utils/bulk_file_changer.html にアクセスして、選択したバージョンのファイルをダウンロードします。
さらに2つのプログラムが見つかりました。
属性チェンジャー- http://attribute-changer.software.informer.com/
ファイル属性ストリッパー1.0- http://www.softpedia.com/get/System/File-Management/File-Attribute-Stripper.shtml
少し前に、私は "RemoveR PRO"を- http://www.bigwig.net/softwaredesign/free.htm (今はリンク切れ)から使用していました。おそらくいくつかのアーカイブで見つけることができます
ファイルとフォルダのコンテキストメニューエントリを作成する AttrMen Shell-extensionを使用できます。