おはようございます。
VBScript暦3週間の初心者です。
VBScriptでYYYYMMDDHHMMSS形式のテキストファイルを作成したいのですが
苦戦しています。
strTxtName = Year(Now) & Month(Now) & Day(Now) & Hour(Now) & Minute(Now) & Second(Now) & "tmp.txt"
上記のようにコードを記述しているのですが
YYYYMMDDHH.txtというファイルが作成されてしまいます。
何が原因なのか、どうすればYYYYMMDDHHMMSS形式のテキストファイルが
作成できるか、ご存知でしたらご教授いただきたく。
よろしくお願いします。
strTxtName = Format(Now(),"YYYYMMDDHHNNSS") & "tmp.txt"
違いました。
VBScriptですね。
Private Sub Main()
Dim tmpDate
Dim strTxtName
tmpDate = Now()
strTxtName = Year(tmpDate) & FormatZero(Month(tmpDate),2) & FormatZero(Day(tmpDate),2) & _
FormatZero(Hour(tmpDate),2) & FormatZero(Minute(tmpDate),2) & _
FormatZero(Second(tmpDate),2) & "tmp.txt"
msgbox strTxtName
End Sub
Private Function FormatZero(strFormat,lngSize)
Dim lngSabunSize
Dim strZero
lngSabunSize = lngSize - Len(strFormat)
For i = 1 To lngSabunSize
strZero = strZero & "0"
Next
FormatZero = strZero & strFormat
End Function
Call Main
参考にして下さい。
お返事ありがとうございます。
いただいたコードをコピーして試してみたのですがやはり 20050708.TXT
が作成されます。
20057814tmp.txtと文字を打ち込んで試してみたところ 20057814.TXT
というのが作成されたので 数字8桁のテキストファイルしか作成できない
ようです。
*しかも拡張子が大文字で"tmp"という文字は無視される。
> でヴぃけいさん
の、
> 参考にして下さい。
が見えてない様子…
※最近、夏の陽気にやられたかの様な人が来る…
そうですか・・・・・
ファイル名を作成した後で何か操作されている感じですね。
テキストファイルを実際に作成するのは別でオブジェクト(DLL)など
を使用しているのですか?
とりあえず原因を探るのが先決ですね。
お使いPCにVB6はインストールされていますか?
されていれば・・・・・
1.ActiveXDLLでプロジェクトを作成してください。(必ず保存はして下さい。)
※ActiveXDLLを生成するのは不要です。
Public Sub DebugObject(valObject As Variant, valObject2 As Variant)
MsgBox "デバッグ終了"
End Sub
2.プロジェクト作成後、ブレイクポイントをMsgBoxに設定して
実行を開始して下さい。
3.対象のVBScriptに上記で作成したオブジェクトを生成してください。
Private Sub Main()
Dim tmpDate
Dim strTxtName
tmpDate = Now()
strTxtName = Year(tmpDate) & FormatZero(Month(tmpDate),2) & FormatZero(Day(tmpDate),2) & _
FormatZero(Hour(tmpDate),2) & FormatZero(Minute(tmpDate),2) & _
FormatZero(Second(tmpDate),2) & "tmp.txt"
Dim DebugObject
Set DebugObject = CreateObject("prjDebugObject.cDebugObject")
Call DebugObject.DebugObject(tmpDate,strTxtName)
Set DebugObject = Nothing
msgbox strTxtName
End Sub
4.後はVBSを実行すればVBのウォッチウィンドなどで変数の中身を参照できます。
よければ作って見て下さい。結構便利です。
お返事ありがとうございます。
残念ながら VB6は入っていないんです。
色々試してみた結果、この箇所でテキストファイルが作成されているようです。
dim wshShell, strCmd
set wshShell = WScript.CreateObject("WScript.Shell")
'ネットワークに接続し、タスクが存在するか確認します。
MsgBox strTmp
wshShell.Run "command.com /c tasklist /s " & strHost & " >> " & strTmp, 0, true
set wshShell = Nothing
wshを実行する前に strTmpの中身を表示させたところ
ちゃんと"20050711160000tmp.txt"となっていました。
command.comで起動すると、たぶんロングファイルネーム
に対応していないので8桁にファイル名が
カットされてしまうのかと思います。
"command.com /c"なしで起動できませんか?
お返事ありがとうございます。
なんとか、プログラムの処理フローを変更し、
wshShell.Run("tasklist.exe /s " & strHost & " >> " & strTmp, 0, true )
とし、解決することができました。
でヴぃけいさん、大変お世話になりました。
大感謝です!
ツイート | ![]() |