質問: バッチファイルについて バッチファイルについて バッチファイルの勉強をしておりますが、以下のバッチで 分からない箇所があります。 @echo off copy c:\bin\set.txt set.txt | find /v "コピー" echo ユーザー名を入力してください echo 入力後、ctrlキーを押しながらzキーを押した後、enterキー copy con inp.txt | find /v "コピー" copy set.txt+inp.txt setinp.bat | find "○○" call setinp.bat echo ユーザー名は%inp%と入力されました! del setinp.bat set.txt inp.txt <<不明箇所>> まず、c:\bin\set.txt』は set inp= とだけ書いたファイルです。 copy c:\bin\set.txt set.txt | find /v "コピー" ですが、|find /v"コピー"はなんのためにやっているのでしょうか?? find /vを調べてみると、指定した文字列を含まない行の内容をすべて画面に表示します。 と記載されていますが・・・・このバッチでは一体なぜ最初にいるのでしょう?? copy con inp.txt | find /v "コピー" ですが、コンソールから入力させた文字列をinp.txtに保存しているらしいのですが、 そのあとに、また、|find /v"コピー"がでてきますが、なぜでしょう??なにを したいのでしょう?? さらにまた、copy set.txt+inp.txt setinp.bat | find "○○"が出てきますが、 ここでなぜまた意味不明な、|find"○○"がでてくるのでしょう?? さらにさらに、バッチを実行してみると、set.txtの中身にはコンソールから 入力した文字は何も記載されていない、そして、inp.txtやsetinp.txtという テキストファイルも、どのフォルダにも出来ていません。 最後の行のdel setinp.bat set.txt inp.txtを消して実行してみても同じです。 なぜでしょう?? このバッチの動き、例としての意図が全く分かりません。。。。 この例題が悪すぎるのか、私の頭がわるすぎるのか・・・・ ちなみに、上記バッチは、http://www.geocities.co.jp/siliconvalley-sanjose/1227/batinput.html のサイトのものです。 どなたかご教授願います。。。一週間悩みましたが、まったく理解できない状態です。。。
回答: これは多分バッチファイルのことをよく知らない人が書いたのでしょう。普通は @echo off copy c:\bin\set.txt set.txt > nul echo ユーザー名を入力してください echo 入力後、ctrlキーを押しながらzキーを押した後、enterキー copy con inp.txt > nul copy set.txt+inp.txt setinp.bat >nul call setinp.bat echo ユーザー名は%inp%と入力されました! del setinp.bat set.txt inp.txt のように、>nul と書きます。 本当の正解は、 set /p inp="ユーザー名を入力してください :" echo ユーザー名は%inp%と入力されました! ですが。 と思ったら、お書きのサイトを見るとちゃんと set /p について書いてありますね。 set /pが使えないwindows95/98/meなどのことは忘れていいと思いますよ。