• ベストアンサー

得た結果を別の値にして返す方法は?

VBスクリプトについて質問があります。日付関数で例えば関数で今月を取得し(例:2008年1月に実行したとして)200801という結果を得たとします。もし出た結果が01の時2007_10-12という値を返すような方法はあります でしょうか? 条件としては四半期ごとにVBSでファイル名を作成するので作成のソースに埋め込むために値を出したいということになります。 ★バッチで1,4,7,10月に実行する 実行したときに1月であれば前の年と前四半期の月を入れる 例として2008年1月に実行すると2007_10-12 2008年4月に実行すると2008_01-03 といった具合になります。 どんな風にコーディングしたらよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

> VBSでやりたかったのですがウイルスソフトが反応して(反応させるのはマズイ環境)なのでやめました。 (http://okwave.jp/qa3773288.html)より。 だったのでは??? > どんな風にコーディングしたらよいのでしょうか? 「当月の月」で判定(IfステートメントやSelectステートメントとか)して、 1月なら「前年」+"_10-12" 4月なら「当年」+"_01-03" ・・・ と、BATの時と同じ考え方でよいのでは? 例えば ------------------------------------ Dim Y,M,Ans Y=Year(Now) M=Month(Now) Select Case M Case 1:Ans=(Y-1) & "_10-12" Case 4:Ans=Y & "_01-03" Case 7:Ans=Y & "_04-06" Case 10:Ans=Y & "_07-09" End Select WScript.Echo Ans ------------------------------------ #凝ったやり方は色々あるでしょうが・・・SimpleIsBestって事で。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • m-toshi
  • ベストアンサー率31% (6/19)
回答No.2

少し凝ってみました。いかがでしょうか? Dim Y,M,Ans Y=Year(Now) M=Month(Now) M=M-3 if M<=0 then Y=Y-1 M=M+12 endif Ans=Y & "_" & M & "-" & M+2 WScript.Echo Ans

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ジョブでvbsを起動する方法

    ジョブでバッチ処理を作成していますが、テーブルからある数式を文字列として取得し、文字列内にある変数を実際の値と置き換え、それを数式として処理する必要があります。 T-SQLにはその機能がないため、vbsのEVAL関数を使って処理しようと考えています。 テーブルから取得した数式を直接SQL文に記述し、「数式 AS フィールド名」として取得しようとも考えましたが、数式に^(べき乗)が存在し、数式をT-SQLに変換することが複雑になってしまうため、あきらめました。 SQLServerのジョブ(もしくはストアドプロシージャ内)からパラメータを与えてVBSを実行させ、VBSより結果を返してもらうコーディング(設定)はどうすればできるのでしょうか?

  • WEBサーバーのログを収集する方法で困っております

    WEBサーバーを管理しているときにログが出ると思いますがLogParserを用いてログ集計をしている方いらっしゃいますでしょうか? IISででたログをLogParserを使って月ごとおよび四半期ごとに自動収集をしてCSVファイルに落としたいと考えております。 取得するためにVBscriptを使うつもりですがこういうやり方がよいよ!みたいなヒントがあったら教えて下さい。 VBSをバッチで定期的に動かすつもりではありますが・・・・ 四半期をどうしようか非常に悩んでおります。 よろしくお願いします。

  • VBのプログラムで、実行時に与えられた値の取得方法について

    VB初心者です。 VBのプログラム呼び出しで、実行時に与えられた値を取得したいのですが、 そのやり方がわかりません。 「C:¥TEST.EXE "abc"」で、実行したとき、"abc"の文字列を TEST.EXEで取得したいのですが、このときのVBのコーディングを 教えて下さい。 宜しくお願い致します。 

  • バッチへ値を返す

    バッチファイルからVB作成のEXEファイルを起動させて、EXEの結果をバッチファイルに出力するにはどのような処理をすればよいでしょうか?

  • 動的配列に値を返す関数

    Split関数のように動的配列に値を返す関数を作成しようとしているのですが、 作り方が全くわからず途方に暮れています。 Function 関数名()(引数1,引数2) などと関数名の後に()を付けたりしてみたのですが、 コーディング時にエラーとなってしまいます。 何か良い方法はないでしょうか?

  • VB6で、変数の値を別ファイルの変数に引き継ぎたい

    AというVBのソースファイル(.frm)内に関数の呼び元があり、 その関数がBというファイルにあります。 その関数内で値が設定される変数を、Bファイルのグローバル変数とし、 また、Aファイルのグローバル変数として同じ名前の変数を宣言したとしても、 やはりB内で関数の実行が終了し、Aに戻った際には、変数は別のものとみなされている ようで、B内関数で設定された値がAファイル内での同名変数に引き継がれません。 どのようにすればよろしいでしょうか? ご存知の方、お願いします。

  • バッチファイルの変数をパラメーター化

    お世話様です。 WindowsXP環境に下記バッチファイルがあります。 バッチコード内は以下の通りです。 ------------------------------------------------ set TARGET_FILE=test.txt ------------------------------------------------ この【TARGET_FILE】という変数内に格納されている【test.txt】という値を パラメーターとしてあるVBS内の変数Aがそれを受け取って処理をする・・・。 という事は可能でしょうか? 上記バッチは数種類あり、【TARGET_FILE】変数内の値がそれぞれ違います。 VBSコード内は以下の通りです。 ------------------------------------------------ Option Explicit Dim FILE FILE = ○○○←ここに上記バッチ内の【TARGET_FILE】変数の値を受け取る。 MsgBox FILE ------------------------------------------------ 各バッチは上記VBSで実行したいのです。 Msgbox程度の処理は当然バッチでも可能ですが、何個もVBSを作成するのは厳しいので、 パラメーターが可能であれば、このVBS1個で済みます。 ご存知の方がおりましたら、お知恵を拝借しても宜しいでしょうか? 何卒宜しくお願い致します。

  • Excelでの近似曲線のxの意味は?(折れ線グラフで横軸に第1四半期,第2四半期・・・)

    EXEL2003の近似曲線における係数とxの意味を教えてください. 過去の数量データの伸び率と将来の予測を考えています.例えば,2008年の第1四半期が200で第2四半期が190で第3四半期が210で第4四半期が200になりました.この場合の2008年の伸び率と,次の2009年の第1四半期以降の数量を予測したい.(折れ線グラフ表示で横軸を2008年第1四半期~2009年第4四半期にとり,縦軸は数量を表示) そこで,1次近似で近似曲線を引きグラフに数式を入れました.その結果y=2x+195と表示されました.yは数量とわかるのですが,xは何の値を入れて次の2009年 第1四半期~4四半期の値を求めればよいのでしょうか? また195という数字は何を表す?

  • 実行結果を戻り値で取得したい

    MS-DOSバッチの実行結果を文字列で取得したいです。 イメージ例としては、下記のようなバッチ2つがあり、 バッチAを起動します。そうすると実行結果の戻り値として 「TEST」という文字列が取得できたら良いです。  ※下記例では「ERRORLEVEL」に入っているようなイメージです。 しかしながら、ERRORLELVEに格納できるのは数値のみの為、 エラーになってしまいます。 どうすれば、実行結果を戻り値で取得できるでしょうか? お手数ですが、MS-DOSで不可能な場合、VBScriptやWSHでも かまいませんので、処理をキックしてその戻り値を文字列で取得する方法を お教えください。お願いいたします。 -------------------------------- 例 【バッチA】 call バッチB echo %ERRORLEVEL% 【バッチB】 exit /b "TEST" -------------------------------- と実行し

  • 別コンピュータのEXEを実行する方法

    同一ネットワーク(LAN)にマシン2台(以下、マシンAとBとする)があります。 マシンBからの命令で、EXEファイルをマシンAで実行したいのですが、可能でしょうか? マシンBから、Shell関数でマシンAにあるEXEファイルを実行すると、 マシンB上で実行されてしまうため、悩んでいます。 マシンAで実行したいのですが。 EXEファイルは、マシンA、Bどちらに置くことも可能です。 OSは、Windows XPです。 言語は、VB6、VB.netの他、VBS、BatでもOKです。 分かりにくい点があれば、補足します。 よろしくお願いします。