質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

4807閲覧

Windowsのバッチ(.bat)であるプログラムを実現したい。

natade

総合スコア9

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/08/08 01:28

編集2018/08/08 01:47

前提・実現したいこと

初めて質問させていただきます。
文章が長くなりますが答えていただけると助かります。

私はプログラミングに関して全くの初心者です。

とあるJavascript関連の初心者向けの本を
参考にして、Javascriptで以下のプログラムを作りました。


let text=prompt('年齢は?');
if(!isNaN(text)){
let age=parseInt(text);
if(age<20){
console.log('未成年');
if(age>=6&&age<=15){
console.log('(義務教育)');
}
}else if(age<65){
console.log('成人');
}else{
console.log('高齢者');
}
}


上記で作成したプログラムの仕様は以下の様に
なります。

・年齢を入力すると年齢層の判定を行います。
・年齢に応じて「未成年」「成人」「高齢者」の
3つの年齢層を表示します。
・「未成年」のうち、義務教育期間の時は、
「未成年」(義務教育)」と表示します。

これを作成した所、とある理由で、同じ機能を実装した、
Windowsのバッチファイル(.bat)も作ることになりました。

しかし2日間色々調べたのですが、作成方法が分からずに困っています。

発生している問題・エラーメッセージ

試したこととして、
①デスクトップに「バッチファイル」という名のフォルダーを作成
②その中に、「cmd.exe」のショートカットと上記のプログラムを
メモ帳で貼り付けファイル名を「hong.bat」に変更したファイルを
「バッチファイル」のフォルダーの中に貼り付けます。
③「cmd.exe」のショートカットをクリックし、「hong.bat」を
入力した所、以下のエラーメッセージの画面が出てきました。
(※○○○の箇所は、個人情報なので、匿名にて失礼致します)


Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\○○○\Desktop\バッチファイル>hoge.bat

C:\Users\○○○\Desktop\バッチファイル>let text=prompt('年齢は?');
'let' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
コマンドの構文が誤っています。

C:\Users\○○○\Desktop\バッチファイル>if(!isNaN(text)){
C:\Users\○○○\Desktop\バッチファイル>


上記のエラーメッセージが出ましたので、プログラムの[let]の箇所を
[echo]に変えて、以下のプログラムに修正致しました。


echo text=prompt('年齢は?');
if(!isNaN(text)){
let age=parseInt(text);
echo(age<20){
console.log('未成年');
if(age>=6&&age<=15){
console.log('(義務教育)');
}
}else if(age<65){
console.log('成人');
}else{
console.log('高齢者');
}
}


「cmd.exe」-ショートカット」をクリックし、「hong.bat」を
入力した所、以下のエラーメッセージの画面が出てきました。


Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\○○○\Desktop\バッチファイル>hoge.bat

C:\Users\○○○\Desktop\バッチファイル>echo text=prompt('年齢は?');
text=prompt('年齢は?');
コマンドの構文が誤っています。

C:\Users\○○○\Desktop\バッチファイル>if(!isNaN(text)){

C:\Users\○○○\Desktop\バッチファイル>


色々ネットで調べましたが、この先からどう修正してよいのか分かりませんでした。

質問したい事

Windowsのバッチ(.bat)で、

・年齢を入力すると年齢層の判定を行います。
・年齢に応じて「未成年」「成人」「高齢者」の
3つの年齢層を表示します。
・「未成年」のうち、義務教育期間の時は、
「未成年」(義務教育)」と表示します。

の上記3つの内容を実現したプログラムを作りたいです。

そもそも作成方法が根本的に間違っているのでしょうか?

最悪、同じような機能ではなくとも、似たような機能に
近づけるようにしたいです。

プラグラムのみならずIT関連の知識も足りない
初心者で、2日間自分で調べても分からず、
お手上げ状態で困っています。

何卒、回答よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

.batはjavascriptではなくバッチ言語とでも言うべき全く別の言語です。

bat

1@setlocal 2@echo off 3set /p AGE=年齢は? 4IF %AGE% LSS 20 ( 5 IF %AGE% LSS 15 ( 6 echo 未成年^(義務教育^) 7 ) ELSE ( 8 echo 未成年 9 ) 10) ELSE ( 11 IF %AGE% LSS 65 ( 12 echo 成人 13 ) ELSE ( 14 echo 高齢者 15 ) 16) 17@endlocal

多くのWindowsの場合WSHを用いてJScriptによってjavascriptっぽいものが動きます
拡張子を.jsにしてダブルクリックした時に起動したハズです。

これをどうにか.batからやる方法もある事はあります。

bat

1@if(0)==(0) ECHO OFF 2cscript.exe //nologo //E:JScript "%~f0" %* 3@rem pause 4GOTO :EOF 5@end 6// ここからJScript 7WScript.Echo('年齢は?'); 8var text=WScript.stdin.readLine(); 9if(!isNaN(text)){ 10var age=parseInt(text); 11if(age<20){ 12WScript.Echo('未成年'); 13if(age>=6&&age<=15){ 14WScript.Echo('(義務教育)'); 15} 16}else if(age<65){ 17WScript.Echo('成人'); 18}else{ 19WScript.Echo('高齢者'); 20} 21}

投稿2018/08/08 02:14

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

natade

2018/08/08 06:54

ご回答ありがとうございました。無事表示することができました。ベストアンサーに選ばせていただきました。よろしくお願いいたします。
guest

0

まずバッチファイルで入力させるにはsetコマンドを使います。
使い方は

set /P text="年齢は? "

という形になり、入力された値がtextという変数に入ることになります。
入力された値を比較する場合はifコマンドを使います。
使い方は

if 条件 ( 条件が真の時に実行されるコマンド ) else ( 条件が偽の時に実行されるコマンド )

というような形になります。(他にもありますので、詳しくはコマンドプロンプトでif /?を実行してください)
また、ifコマンドで使用できる比較演算子は
EQU - 等しい
NEQ - 等しくない
LSS - より小さい
LEQ - 以下
GTR - より大きい
GEQ - 以上
となります。
ですので、入力された値が20より小さいか判断したい場合は

if %text% lss 20 ( echo "未成年" )

となります。

文字を出力する場合はechoコマンドを使います。

あとは上記のことを組み合わせれば実現できるかと思います。

投稿2018/08/08 02:11

YAmaGNZ

総合スコア10222

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

natade

2018/08/08 06:59

ご回答と丁寧な解説ありがとうございます。まだ初心者ですが、おかげで仕組みについて少し理解することができました。よろしくお願いいたします。
guest

0

そもそも作成方法が根本的に間違っているのでしょうか?

はい、バッチファイルは実行コマンドを並べるもので、JavaScriptとは全く無縁です。

投稿2018/08/08 01:37

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

natade

2018/08/08 01:42

さっそくの回答ありがとうございます。では、どのように作成すれば解決するのでしょうか?それすらも分からない愚かな初心者のためよろしくお願いいたします。
maisumakun

2018/08/08 01:57

「set /p」コマンドを使ってユーザー入力をさせて、ifで数値比較をさせる、という流れになります。
natade

2018/08/08 07:00

回答ありがとうございます。知識のない自分にとって、今後の参考になりました。よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問