バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。
Q&A
2回答
1234閲覧
総合スコア39
0グッド
0クリップ
投稿2016/07/13 13:32
0
バッチファイルについて質問です。
下記ができる記載方法を教えてください。
1,パスを入力すると,フォルダならdir結果を出す。 2,パスを入力すると,ファイルの存在有無を出す。
以上,宜しくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
2016/07/13 13:35
2016/07/13 13:37
2016/07/13 14:21
2016/07/13 14:45
回答2件
多分こんな感じ
bat1@echo off 2 3if "%1"=="" ( 4 REM 引数が無かったら ERRORLEVEL に 1 をセットして終了 5 set ERRORLEVEL=1 6 goto :eof 7) 8 9if not exist %1 ( 10 REM 何も存在しない場合はFALSEを出力 11 echo FALSE 12 goto :eof 13) 14 15set A=%~a1 16if %A:~0,1%==d ( 17 REM フォルダが存在する場合はDIRの結果を出力 18 dir %1 19) else ( 20 REM ファイルが存在する場合はTRUEを出力 21 echo TRUE 22 goto :eof 23)
bat
1@echo off 2 3if "%1"=="" ( 4 REM 引数が無かったら ERRORLEVEL に 1 をセットして終了 5 set ERRORLEVEL=1 6 goto :eof 7) 8 9if not exist %1 ( 10 REM 何も存在しない場合はFALSEを出力 11 echo FALSE 12 goto :eof 13) 14 15set A=%~a1 16if %A:~0,1%==d ( 17 REM フォルダが存在する場合はDIRの結果を出力 18 dir %1 19) else ( 20 REM ファイルが存在する場合はTRUEを出力 21 echo TRUE 22 goto :eof 23)
投稿2016/07/13 14:52
総合スコア49
1,パスを入力すると,フォルダならdir結果を出す。
ということは、指定されたパスがフォルダかそうではないかを判定する必要がありますね。判定方法についてはファイルの属性を利用する方法とパスの末尾に\を付けて判定する方法とがあるようです。 ただ、
2,パスを入力すると,ファイルの存在有無を出す。
ことも必要であることから、パスの末尾に\を付けて判定する方法がスマートかもしれません。 (IF EXISTを使って存在判定しなければならないわけですし)
投稿2016/07/13 14:45
総合スコア1557
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
まだベストアンサーが選ばれていません
アカウントをお持ちの方はログイン
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.47%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
バッチファイルについて