Windowsバッチファイルの作成方法について質問させて下さい。

以下の処理を行うバッチファイルの作成を考えています。
・C:\Program Files\Microsoft Visual Studio 8\VCへ移動
・上記フォルダ内にある vcvarsall.batファイルを実行
・C:\Program Files\Microsoft Platform SDKへ移動
・上記フォルダ内にある SetEnv.cmdファイルを実行
・Cドライブ直下(C:\)へ移動

目的としては、「Microsoft Visual C++2005」の環境設定ファイルを
バッチファイルにて一括実行することです。

実際に自分で作成したバッチファイル(setenv.bat)の内容は
以下のとおりです。
----------------------------------------------------------
@echo off

echo setenv.batを実行します
cd C:\Program Files\Microsoft Visual Studio 8\VC
echo vcvarsall.batを実行して環境設定をおこないます
vcvarsall.bat
cd C:\Program Files\Microsoft Platform SDK
echo SetEnv.cmdを実行して環境設定をおこないます
SetEnv.cmd
cd C:\
----------------------------------------------------------

[実行結果]
C:\>setenv.bat
setenv.batを実行します
vcvarsall.batを実行して環境変数を設定します
Setting environment for using Microsoft Visual Studio 2005 x86 tools.

実行結果のとおり、setenv.batの実行までしか処理が行われず、
vcvasall.batは実行されません。

原因と対処方法について、どなたか教えて頂けませんでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

バッチからバッチを呼び出すときは「call」を使います。



  http://ykr414.com/dos/dos05.html#06
    • good
    • 0
この回答へのお礼

非常に参考になりました。
おかげさまで問題解決できました。
ありがとうございます。

お礼日時:2008/03/26 21:12

>実行結果のとおり、setenv.batの実行までしか処理が行われず、


>vcvasall.batは実行されません。

vcvarsall.bat は実行されてるんじゃない?
その後、もとのバッチファイルに制御が戻らずに SetEnv.cmd が実行されていないのでは?

単純なのは、vcvarsall.bat の中身をまんま my_vcvarsall.bat としてコピーして、その中に
SetEnv.cmd を実行するステップを追加する。

この回答への補足

ご指摘のとおり、正しくは「SetEnv.cmdが実行されていない」です。
失礼しました。

補足日時:2008/03/26 20:54
    • good
    • 0

バッチファイルからバッチファイルを動かすには


CALL ~bat
と記述します。

一度お試しください。
    • good
    • 0
この回答へのお礼

教えて頂いた方法で問題解決できました。
ありがとうございました。

お礼日時:2008/03/26 21:13

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q初心者でiPad,iPhoneプログラミング

初心者でiPad,iPhoneプログラミング

プログラミング知識ゼロなのですが、iPad,iPhoneアプリ作成の勉強がしたいと思っております。
先ずは、書籍等で知識を得たいと考えているのですが、
超初心者の私に、iPad,iPhoneのプログラミング入門に最適の書籍はありませんでしょうか?
いくつか検索をしてみたのですが、レビューにC言語がわからないと理解出来ない等の口コミを読み、
どれがいいのか分からなくなっています。
おすすめの書籍等の情報がございましたら、
お教えいただけませんでしょうか?

よろしくお願い致します。

Aベストアンサー

書籍とは違いますが、SDK入手時などにアクセスすることになる
開発者向け情報のサイト上には、豊富なコンテンツがあります。
http://developer.apple.com/iphone/

これらの公開されたドキュメントや、ディスカッションフォーラムの
過去ログ検索を使うことでも情報が得られますし、豊富なサンプルコードも
入手できます。自分で使いながらトライアンドエラーを繰り返して
わからないことがあればディスカッションで聞いてみたりすると
頭に入りやすいかと思います。

iPhoneアプリケーション作成のチュートリアル
http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhone101/Articles/00_Introduction.html
オブジェクトCの概要
http://developer.apple.com/iphone/library/referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/
詳細
http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html

アップルのデベロッパサイト自体がそうなのでもちろん全文英語なのですが
iPhoneアプリを開発するなら早かれ遅かれ利用するサイトなので、
どんな情報がどこにあるのかだけでも知っておくと良いかもしれません。

書籍とは違いますが、SDK入手時などにアクセスすることになる
開発者向け情報のサイト上には、豊富なコンテンツがあります。
http://developer.apple.com/iphone/

これらの公開されたドキュメントや、ディスカッションフォーラムの
過去ログ検索を使うことでも情報が得られますし、豊富なサンプルコードも
入手できます。自分で使いながらトライアンドエラーを繰り返して
わからないことがあればディスカッションで聞いてみたりすると
頭に入りやすいかと思います。

iPhoneアプリケーション作成のチュートリアル...続きを読む

Qバッチファイルの作成方法

バッチファイルの初心者です。
下記のようなバッチを作成したいと思っています。

(1)本日の日付のディレクトリを作成する。
(2)そのディレクトリに数時間毎に作成される***.logを全て移動する。
(3)3日前に作成したディレクトリを削除する。

以上のような流れのバッチファイルは簡単に作成できるのでしょうか?

Aベストアンサー

作れない事はないですが、非常に複雑になりお奨めできません。

(1)と(2)は簡単なんですが、(3)の3日前の部分で複雑になります。

ちなみに、(1)と(2)の部分は
これでYYYYMMDDディレクトリを作成し、*.logファイルを移動します。エラー処理はしてませんので適当に。

VBscriiptかプログラムを書いたほうがすっきりします。

set dname=%date:~0,4%%date:~5,2%%date:~8,2%
md %dname%
copy *.log %dname%
del *.log

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html

Qiphone sdkとandoroid sdk初心者にはどちらが簡単でしょうか。



iphone sdkとandoroid sdkでプログラミングする場合、初心者にはどちらが簡単でしょうか。

cocoaに対するソフトはandoroid sdkにはあるのでしょうか。

過去に、htmlをかじった程度で、プログラムに関しては全くの初心者です。

よろしくご教授お願いします。

Aベストアンサー

Android SDKについては詳しくないのですが、iPhone SDKもAndroid SDKもプログラミング言語を扱うという点ではどちらも同じなのでは?プログラミング言語とHTMLは全然違いますよ。

QバッチファイルにてFTPで指定したファイルを取得する

OSはWindoswXPProです。
以下のようなBATファイルとバッチファイルを作成しました。

---FTP.bat---
echo off
ftp -s:get.ftp

---get.ftp---
open 10.0.X.X
username
password
cd /log
get log.yymmdd(実際には日付) c:\access_all_log.txt
quit


logというディレクトリには日次でログファイルが作成され
ファイル名としてlog.yymmddと名づけられています。

やりたいことは2つあります。
1つめはftpするファイル名の日付部分をコマンドなどから
範囲指定して取得するファイルを指定できないか。
(たとえば070301~070315のファイルを一括で取得したい)
2つ目はftpでのファイル取得終了後に続いて
バッチスクリプトを流したいのですが、その方法。

お分かりになる方いらっしゃいましたらよろしくお願いいたします。

Aベストアンサー

バッチで日付を扱うのはけっこう難しいですよね。
VBSで、
・指定した期間内のログファイルをftpでgetするftp.getファイルを生成し、
・getした複数のログファイルを copy で1つのファイル(c:\access_all_log.txt)にまとめ、個々のログファイル(log.yymmdd)を削除するバッチファイルを生成
するスクリプトを作ってみました。

まず、MakeGetFtp.vbs という名前で、以下の内容のファイルをバッチファイルと同じディレクトリに作成してください。(IPアドレス、ユーザ名等は本当のものに書き換えてください)

----------------------------------------------
Dim strDate(2)
Dim argDate(2)
Dim TmpDate,d, i,logfile
Dim FSO,FtpFile,CopyBat
Dim GetStr,CopyStr,DelStr

'引数の数チェック
If WScript.Arguments.Count <> 2 Then
WScript.Echo("開始日付と終了日付を指定してください")
WScript.Quit(1)
End If

'各スクリプト、バッチファイルに渡す日付パラメータの作成
For i = 1 to 2
strDate(i) = Wscript.Arguments.Item(i - 1)
If Not IsNumeric(strDate(i)) or _
Len(strDate(i)) <> 6 Then
WScript.Echo(CStr(i) & "番目の日付の書式が間違っています。")
WScript.Quit(1)
End If
argDate(i) = DateValue("20" & Left(strDate(i),2) & "/" & _
Mid(strDate(i),3,2) & "/" & Right(strDate(i),2))
Next

'初期化
CopyStr = "Copy "
DelStr = "Del "

'FTPのgetコマンド、BATのCOPYコマンド、DELコマンドを作成
For d = argDate(1) to argDate(2)
TmpDate = FormatDateTime(d,2)
TmpDate = Mid(TmpDate,3,2) & Mid(TmpDate,6,2) & Mid(TmpDate,9,2)
logfile = "log." & TmpDate
GetStr = GetStr & "get " & logfile & vbCrlf
CopyStr = CopyStr & logfile & "+"
DelStr = DelStr & logfile & " "
Next

'FTPコマンドをファイルに出力
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.CreateTextFile("get.ftp")
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.CreateTextFile("get.ftp")
.WriteLine("open 10.0.X.X")
.WriteLine("username")
.WriteLine("password")
.WriteLine("cd /log")
.WriteLine(GetStr)
.WriteLine("quit")
.Close
End With

CopyStr = Left(CopyStr,Len(CopyStr)-1) & " c:\access_all_log.txt"

With FSO.CreateTextFile("TmpCopy.bat")
.WriteLine("@echo off")
.WriteLine(CopyStr)
.WriteLine(DelStr)
.Close
End With

Set FSO = Nothing
----------------------------------------------

そして、FTPを行うバッチファイルを以下の内容にしてください。

----------------------------------------------
@echo off
cscript MakeGetFtp.vbs %1 %2
if %errorlevel% EQU 1 goto end
ftp -s:get.ftp
TmpCopy.bat
:end
----------------------------------------------

上記のバッチファイルの名前を、ftpget.bat とすると、

ftpget.bat 070301 070315
と日付を指定して実行すると、その期間のログをFTPでgetし、c:\access_all_log.txt にまとめられます。

バッチで日付を扱うのはけっこう難しいですよね。
VBSで、
・指定した期間内のログファイルをftpでgetするftp.getファイルを生成し、
・getした複数のログファイルを copy で1つのファイル(c:\access_all_log.txt)にまとめ、個々のログファイル(log.yymmdd)を削除するバッチファイルを生成
するスクリプトを作ってみました。

まず、MakeGetFtp.vbs という名前で、以下の内容のファイルをバッチファイルと同じディレクトリに作成してください。(IPアドレス、ユーザ名等は本当のものに書き換えてください...続きを読む

Q初心者にはiPhoneとアンドロイドどちらがいいですか?

iPhoneかアンドロイドを購入しようかと思うのですが、初心者にはどちらがオススメですか?

Aベストアンサー

追記です。
ちょっと受け取り方が違うのかなと思いまして。
パソコンをいじっている人だったら、Androidのほうが面白いかな?という意味なんです
けど・・・。
こちらのサイトが参考になるかも
  http://android.ascii.jp/2014/05/03/differenceiphone/
  http://thegoalnext.blog.fc2.com/blog-entry-779.html
  http://iphone.f-tools.net/QandA/iPhone-Android.html
  http://geeks-geek.blogspot.jp/2014/09/iosandroid.html

Q【Excel】Excelで作ったファイルをCSVで保存するには?

超初心者な質問ですみません。(>_<)
Excelで作成したファイルをCSVで保存したいんです。

(1)Excelファイルを開く。
(2)「名前をつけて保存」を選択し、ファイル名のお尻にYYYYMMDDをつけ(Product_20050901.csv)、「ファイルの種類」を「CSV(カンマ区切り)」にして保存する。
(3)指定フォルダにCSVファイルが作成される。
(4)出来上がったCSVファイルを開こうとすると、「SYLK:ファイル形式が正しくありません」という警告が出てファイルが開かない。

という現象が起きてしまいます。
何がいけなかったんでしょう?
どうしたらCSVで保存できますか?教えてください!

Aベストアンサー

CSVファイルの先頭にあるデータが、
"ID"になってたりはしませんか?

QiPhone初心者なんですけどiCloudとはなんですか? 簡単に教えていただきたいです!

iPhone初心者なんですけどiCloudとはなんですか?
簡単に教えていただきたいです!

Aベストアンサー

ざっくり言えば、Apple社が提供するオンラインサービスの総称です。
メールやカレンダー、アドレス帳、ストレージ(データ保管場所)などを使うことが出来ます。
iPhoneを紛失した時に探すサービスもサービスの一部です。
iPhoneデータの自動バックアップもしてくれます。
※機種変更した時とか、故障で初期化した時に復元するためのデータも保持してくれます。

iCloudを使うにはアカウントを作成する必要がありますが、
これはApple IDと共通になっています。
iPhoneを使う時に、Apple IDが必要になりますが、
Apple IDを作成すると同時にiCloudも使えるようになるわけです。

Qバッチファイルでのif文分岐

ドラッグ・アンド・ドロップ(以下、D&D)によるバッチファイルを作成する際にダブルクリックでバッチファイルを開こうとする行為のフェールセーフを考えています。
現状では、以下のバッチファイルにファイルやフォルダをD&Dするとif文の分岐の箇所で終了してしまいます。

有識の方の教授をお願いします。

/* ↓↓ 以下コードです ↓↓*/
@echo off

if "%1"=="" goto error
rem D&Dされたパスを表示
echo %1

echo 終了しました。
goto end

:error
echo このファイルはダブルクリック形式ではありません。
echo ファイルやフォルダをD^&Dして下さい。
pause
exit

:end
exit
/* ↑↑ ここまで ↑↑ */

開発環境
OS:WindowsXP

以上、よろしくお願いします。

Aベストアンサー

XPで長いファイル名の問題ということですから、
コマンドプロンプト用の対策で構わないですかね?

if "%~1"=="" goto error

というふうに%の後に~(チルダ)を入れてください。
パラメータが引用符で囲われているときは引用符が取り除かれます。
パラメータが引用符で囲われていなければそのままです。

%~構文は他にもいろいろあるので
for /?
とか
set /?
とかで表示されるヘルプを読んでみてください。

QiPhone初心者 クリップボックスのデータのバックアップの仕方を教えて下さい

iPhone初心者
クリップボックスのデータのバックアップの仕方を教えて下さい

Aベストアンサー

【Clipboxの小技】ファイルのバックアップ方法
http://clipbox-official.com/c/2015/05/26/backup/

QバッチファイルのPAUSE

バッチファイルのPAUSEを使って、
実行するかどうか待機状態のまま
指定時間何もキーを触らなければ
自動的に黒のコマンドプロンプトを
終了させる方法はないですか?

Aベストアンサー

Option Explicit

Dim objWshShell
Set ObjWshShell = WScript.CreateObject("WScript.Shell")

Dim result
result = objWshShell.Popup("10秒待ちます",10,"タイトル",vbOKCancel)

if result = vbOK Then
objWshShell.Run "A.EXE",1
End If
-----------------------------------
こんな感じでOKです。

スクリプト側でA.EXEの終了待ちを行いたい場合は、
objWshShell.Run "A.EXE",1,True
と、最後にTrueを追加してください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング