2

このためのシェル (cmd) ソリューションをしばらく探していましたが、見つかりませんでした。したがって、ジャンクションを作成したかったのですが、最初にフォルダーが存在する場合は削除する必要があります ( sysinterals のジャンクションではこれを上書きできません)。

私の最初の解決策は、実行することでしたrmdir /S/Q folder\to\be\overwritten。しかし、スクリプトを再実行し、folder\to\be\overwrittenすでにリンク先の例を指しているcommon\folder場合、コンテンツcommon\folderは削除されます。良くない ;-)。

Windowsコマンドラインでフォルダだけを安全に削除するにはどうすればよいですか?また、これは Windows XP で動作する必要があることにも注意してください。

4

1 に答える 1

0

私がよく見つけた答えは...うまくいきます。

rem ad-l means directories but not links (symlinks or hardlinks)
for /f %%d in ('dir /ad-l /b .\folder\to\be') do @if [%%d]==[overwritten] rmdir /S /Q .\folder\to\be\overwritten
rem adl means directories which are links (symlinks or hardlinks)
for /f %%d in ('dir /adl /b .\folder\to\be') do @if [%%d]==[overwritten] rmdir .\folder\to\be\overwritten

この例では、削除するfolder\to\beという名前のフォルダー (またはリンク) が含まれていることに注意してください。overwritten

于 2012-11-27T13:07:14.657 に答える