質問: *.txt ( rename %1 sample.txt ) else ( echo textファイルではありません ) pause ``` なぜかテキストファイルをドラッグしても `else()` 部分に飛んでしまいます。 いろいろ試しましたがわからなく、詳しい方おられましたらご指南のほど お願いいただければ幸いです。
回答: ``` if %1 == *.txt ( rename %1 sample.txt ) else ( echo textファイルではありません ) ``` を下記に変えてみてください。 ``` echo %~n1 | find ".txt" 1>nul if not ERRORLEVEL 1 ( rename %1 sample.txt ) else ( echo textファイルではありません ) ``` これは文字列の中に.txtが含まれるかどうかのチェックをしています。 従いまして、拡張子で無い場所に.txtが含まれる場合もヒットします。 もっと厳密に行うためには拡張子とファイル名を分離し、拡張子だけを比較の対象にします。 参考