web-dev-qa-db-ja.com

バッチファイルを使用してショートカットを起動する

ここに問題があります。

以下と同じフォルダにある約260台のコンピュータにショートカットがあります。

"c:\ documents and settings\all users\desktop\Remote agent 1234。lnk"

ショートカットで変わる唯一のものは数です。完全なファイル名を指定する代わりに、バッチファイルでワイルドカードを使用してショートカットを起動する方法はありますか?

12
ghost3h

このタスクには for または forfiles のいずれかを使用できます。 Forfilesはより柔軟ですが、古いバージョンのWindowsでは正しく機能しない可能性があります。

For

コマンドプロンプトから:

for %a in ("C:\Documents and Settings\All Users\Desktop\Remote agent *.lnk") do @start "" "%a"

バッチファイルで:

for %%a in ("C:\Documents and Settings\All Users\Desktop\Remote agent *.lnk") do @start "" "%%a"

Forfiles

forfiles /P "C:\Documents and Settings\All Users\Desktop" /M "Remote agent *.lnk" /C "cmd /C start \"\" @path"

Forfileは、/Pで指定されたマスクに一致する、/Mで指定されたパス内のすべてのファイルを通過し、/Cで指定されたコマンドを実行します。ここで@pathはファイルの完全パスです。

通常、コマンドstart "" "Remote Agent 1234.lnk"を使用してショートカットを起動します。 startは内部コマンドなので、新しいシェル(cmd /C)で呼び出す必要があります。 \"\"は、文字列全体がすでに引用されているため、エスケープされた二重引用符です。

6
Dennis