2

現在のディレクトリ内のすべての .bat ファイルをリストする必要がある MS DOS バッチ スクリプトを作成していますautoexec.batが、ユーザーが実行してはならない show またはその他のユーティリティまたはシステムの .bat ファイルはリストしません。

私は現在持っていますDIR "*.bat" /B /P

これにより、すべての .bat ファイルが適切に一覧表示されますが、autoexec.bat が表示されます。それをリストから除外するにはどうすればよいですか? また、少し重要なことですが、ファイル拡張子を切り捨てて、DOS が制限する 7 文字を超えるファイルを表示するにはどうすればよいでしょうか?

制約: WinME より上の DOS バージョンを使用できません。それが私が使用しているバージョンです。

助けてくれてありがとう。

EDIT: これを行うことについてはインターネット上にたくさんの情報がありますが、それはすべてMS DOSではなくWindowsコマンドプロセッサにあります。DOS とコマンド プロンプトは同じものではないことをご理解ください。

4

4 に答える 4

1
DIR "*.bat" /B /P | find /v "autoexec" | for %i in (*.bat) do @echo %~ni
于 2013-03-30T03:11:10.043 に答える
0

for各ファイル名を個別に処理するために使用します。

setlocal enabledelayedexpansion
for /f %%i in ('dir "*.bat" /b') do (
  set system=0
  if "%%i"=="autoexec.bat" set system=1
  if "%%i"=="somesystem.bat" set system=1
  if !system!==0 echo %%i
)

変数を使用しない別の方法:

for /f %%i in ('dir "*.bat" /b') do call :test %%i
goto continue
  :test
  if "%1"=="autoexec.bat" goto :eof
  if "%1"=="somesystem.bat" goto :eof
  echo %1
  goto :eof
:continue

どちらの場合も、リストから除外する新しいファイル名を追加できます。

于 2013-03-30T06:35:25.927 に答える