以下のバッチファイルは、「C:\DocumentsandSettings」フォルダ内のすべてのフォルダにあるすべてのショートカットとそのバリアントを削除します。
@echo off
for /R "C:\Documents and Settings" %%a in (*.lnk) do del %%a
編集: 追加された新しい情報に基づく新しいソリューション
Ok。削除するショートカットのベース名が記載されたテキストファイルがあるとします。たとえば、これはdelete.txtファイルの一部です。
Accounts Payable
Approval Levels
Clinical Carestation
. . . . . .
Security
Snomed Coding
. . . . . .
以下のバッチファイルは、前のリストのベース名のすべてのバリアントを削除します。
@echo off
for /F "delims=" %%a in (delete.txt) do (
for /R "C:\Documents and Settings" %%b in ("*%%a*.lnk") do echo del "%%b"
)
ただし、以前の方法には2つの問題があります。
ユーザーが新しいショートカットにどの名前を選択するかを事前に知る方法がないため、バッチプログラムを実行するたびに削除リストを手動で作成する必要があります。削除する名前を選択するためにすべてのショートカットを手動で修正する必要がある場合(以前のように)、バッチプログラムはまったく役に立ちません。
削除してはならないショートカットと、削除してはならないバリアントを区別する方法はありません。たとえば、「Security」ベース名を使用すると、「Security.lnk」、「Copy of Security.lnk」、「Copy(2)of Security.lnk」、「Security(2).lnk」などのファイルをすべて削除できます。 ceteraですが、「Windows Firewall withAdvancedSecurity.lnk」も削除されます。
ここで、代わりに保持するショートカットのフルネームを含むテキストファイルがあるとします。たとえば、これはpreserve.txtファイルの一部です。
Windows Firewall with Advanced Security
このファイルは一度だけ作成され、新しい永続的なショートカットが作成されたときにのみ変更する必要があるため、以前の削除リストよりも保守がはるかに簡単です。
以下のバッチファイルは、保存リストに含まれているものを除いて、既存のすべてのショートカットを削除します。
@echo off
setlocal
for /F "delims=" %%a in (preserve.txt) do set preserve[%%a]=defined
for /R "C:\Documents and Settings" %%a in (*.lnk) do (
if not defined preserve[%%~Na] echo del "%%a"
)
アントニオ
編集: Xaeroへのコメント
すみません。これはあなたの将来の質問のための単なる推奨事項です...
あなたはより良い質問がより良い答えにつながることを理解しなければなりません。おそらくあなたの質問にはあなたにとって明らかなポイントがありますが、私たちがあなたと同じトピックの背景を持っていないことを認識しなければならないので、批判的な目であなた自身の説明を読み、不足している情報を提供するようにしてください。たとえば、私があなたに尋ねたとき、「あなたが言った「コピー」という名前のショートカットはどこにありますか?」ディスク内のそのようなファイルの場所を知りたいからではなく、それらの名前がリストに表示されないために、私が尋ねたことに気付くはずです(これがバッチファイルの目的です!)。この質問には、「前のリストにはベース名のみがあり、バリアントはそれらから組み立てられます。たとえば、「買掛金管理のコピー」または「承認レベル(2)」のように答える必要があります。
アントニオ
編集: fthiellaへのコメント
すみません、次の段落では違反は意図されていません。
このサイトの人々は、彼らの質問に対して信頼できる正確な答えを得ることを期待しています。あなたがそれについて学ぶ目的で質問に答えるならば、あなたは間違ったまたは不正確な情報を提供する可能性があります。
他の人に解決策を提供する前に、テーマをマスターすることをお勧めします。経験のない人に間違った答えをすると、彼らは不十分な技術を学び、使用している可能性があります。実際のところ、これがバッチファイルコミュニティに複数の悪い習慣を広めている理由の1つです(echo.
コマンドを使用して空の行を表示するfor /F "tokens=* delims= " %%a in ('dir /b *.txt')
などfor %%a in (*.txt)
)。私の国では、「目の不自由な人を率いる片目の男」という人気のフレーズがあります。
アントニオ