web-dev-qa-db-ja.com

一括削除:アクセスが拒否されました

バッチファイルのdelコマンドに問題があります。削除ステップに到達すると、「アクセスが拒否されました」というメッセージが表示されます。私のバッチコマンドは次のようになります。

set destPath=\\Public01\Appl\CompOps\Jobs\

robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS

pushd "%destPath%"
del *.dtsConfig
ren *.dev .
popd

Enter image description here

Windows Explorer で問題なくディレクトリを参照してファイルを削除できます。

管理者として実行してみましたが、それでも同じ問題が発生しました。

10
agradl

del コマンドで読み取り専用ファイルを強制的に削除するには、/Fフラグを追加します。

Windows Explorer を使用して削除することはできますが、読み取り専用ファイルは通常、バッチファイルでは削除できません。ファイルが読み取り専用かどうかを確認するには、ファイルを右クリックしてプロパティを選択するか、コマンドプロンプトで attrib <filename> と入力します。これにより、さまざまなファイル属性に対応する一連の文字が表示されます。

R = Read-only file
A = Archive file
S = System file
H = Hidden file

プロパティウィンドウのボックスをオフにするか、コマンドattrib <filename> -Rを実行すると、読み取り専用タグを削除できます。

7
SaintWacko

「del」コマンドで使用できるオプションを試してみたところ、削除しようとしたファイルが読み取り専用であることがわかりました。この問題を解決するには、ファイルを編集して読み取り専用属性を削除するか、/ Fオプションを指定します。

最終的なスクリプトは

set destPath=\\Public01\Appl\CompOps\Jobs\

robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS

pushd "%destPath%"
del /F *.dtsConfig
ren *.dev .
popd

簡単な解決策ですが、誤解を招くエラーメッセージが表示されます。うまくいけば、これは他の誰かを助けます。

2
agradl

私のWindows 8.1 PCで機能したもの:

まず、次の方法でWindowsエクスプローラを閉じます。

押す CtrlAltDel 開く場合タスクマネージャ、プロセスに移動し、Windowsエクスプローラ、右クリック、タスクの終了。スタートバーがなくなっていても心配はいりません。使用する AltTab ファイル間を行き来するため。次に、タスクマネージャで、ファイルおよびRun new task、and cmdと入力します。 コマンドラインが開きます。

Terminalの内部:

バージョンが32ビットで、私の場合は、Program Files(x86)にあるため、次のように入力する必要があります。

cd "C:\Program Files (x86)\Git\git-cheetah"
regsvr32 /u git_Shell_ext64.dll

これは登録を解除するためのものでした。

cd directorynameを使用してディレクトリ間を移動でき、cd ..を使用して1つのディレクトリを取得できます。ディレクトリにあるものを表示するには、そのディレクトリにいるときにdirと入力します。ファイルタイプを削除する場合:

del /F filename

その後、再度タスクマネージャを開き、Fileに移動して、実行しますExplorer。これにより、通常の表示になります。削除したいGitフォルダーに移動し、単純に削除します。

これがWindows 8.1を使用している他の人にも役立つことを願っています。

1
Tolga Varol