1

問題のあるバッチファイルがあります。ファイルの名前を見つけて、変数に設定する必要があります。次に、これを使用して vbs スクリプトに渡し、ファイルをさらに調べます。ファイルの名前は logfile_date_time.log ですが、時間は開始時刻によって異なります。バッチ ファイルのポイントは、このファイルの最終更新日を調べることです。

set fordate=%date:~4,2%%date:~7,2%%date:~10,4%

set filename=c:\logfile_%fordate%_*.log

if exist %filename% (goto exist) else (goto noexist)

:exist

vbsscript.vbs /file:%filename%

goto end

:noexist

file doesn't exist code blah blah

:end

pause

これは仕事用であるため、セキュリティ上の目的でフォルダーの名前を変更し、いくつかのコードを削除する必要がありました。

どんな助けでも感謝します。ありがとう!

4

2 に答える 2

0

コードの問題は、ワイルドカード文字 ( *) が展開されないことと、おそらく VBScript がファイル名のワイルドカードを単独で処理しないことです (FileSystemObjectたとえば、メソッドは処理しません)。処理したいファイルがパターンに一致する唯一のファイルである場合は、次のようにすることができます。

@echo off

setlocal

set "fordate=%date:~4,2%%date:~7,2%%date:~10,4%"

pushd C:\
for %%f in (logfile_%fordate%_*.log) do vbsscript.vbs /file:"%%~ff"
popd
于 2013-10-30T15:38:21.217 に答える