3

文書化されていませんがpushd、ワイルドカードを受け入れます (コマンド拡張機能がオンになっている場合)。しかし、期待どおりに動作せず、バグがあるようです。ワイルドカード式が渡されると、pushd はパターンを適用するすべてのファイル (!) とフォルダーをアルファベット順に取得し、フォルダーかファイルかをチェックせずに、リストの最初の項目を入力しようとします。

C:>break>a1

C:>md a2

C:>pushd "a*"
The directory name is invalid.

C:>md b1

C:>pushd "b>"

C:\b1>

ワイルドカード式を渡されたような最初のディレクトリを強制的pushdに入力する方法はありますか。動作しないかのようなものです。唯一の方法は、コマンドでディレクトリを一覧表示し、最初のディレクトリを取得してからに渡すことです。b*\b*\nulDIRpushd

@echo off

set "mask=b?"

for /f "tokens=*" %%# in ('dir /b /a:d /o:-n "%mask%"') do @set the_dir=%%#

pushd %the_dir%

しかし、これはコマンドラインからの使用には不便です。

4

1 に答える 1