2017-07-10 54 views
0

サービスを停止し、フォルダに.logファイルを作成するバッチファイルがあります。ログファイルには、停止日/開始日と停止時刻/開始時刻とサービス名が表示されます。どうやってやるの?開始時刻と終了時刻とサービス名をバッチファイルに出力する

@echo off 
sc stop tapisrv 
if ERRORLEVEL 1 goto error 
pause 
if exist "C:\AliCanDirik" echo A file name AliCanDirik already exists in 
directory C:\ 
if not exist "C:\AliCanDirik" mkdir C:\AliCanDirik 
echo AliCanDirik is created in directory C:\ 
echo %UserName% > odev.log 
pause 

このように変更しました。

@echo off 
sc start tapisrv 
if ERRORLEVEL 1 goto error 
pause 
sc stop tapisrv 
if ERRORLEVEL 1 goto error 
pause 
if exist "C:\AliCanDirik" echo A file name AliCanDirik already exists in 
directory C:\ 
if not exist "C:\AliCanDirik" mkdir C:\AliCan 
echo AliCanDirik is created in directory C:\ 

set logfile=C:\AliCanDirik\odev.log 
echo Service name= tapisrv Date= %date% Time= %time% Username= %username% >> 
%logfile% 
tapisrv -options oas >> %logfile% 
pause 

ファイルと.logファイルを作成し、.logファイルに時刻&を取得します。しかし、私は開始時間と停止時間を別々に学ぶ必要があります。 私はそれを見つけたと思う。

@echo off 
sc start tapisrv 
if ERRORLEVEL 1 goto error 
set starttime=%time% 
set startdate=%date% 
pause 
sc stop tapisrv 
if ERRORLEVEL 1 goto error 
set stoptime=%time% 
set stopdate=%date% 
pause 
if exist C:\AliCanDirik (
    echo A file name AliCanDirik already exists in directory C:\ 
)else (
    mkdir C:\AliCanDirik 
    echo AliCanDirik is created in directory C:\ 
) 

set logfile=C:\AliCanDirik\odev.log 
echo Service name= tapisrv Start Date= %startdate% Start Time= %starttime% 
Username= %username% >> %logfile% 
echo Service name= tapisrv End Date= %stopdate% End Time= %stoptime% 
Username= %username% >> %logfile% 

一時停止

+0

あなたのコードが故障している、 '「ディレクトリ」は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチfile.'代わりに、2の場合ののあなたが使用する必要があると認識されていない場合、' COND(dothis)他(dothat) 'http://ss64.com/nt/if.htmlを参照してください。 – LotPings

+0

私はそれを修正しました。ありがとうございます –

答えて

0

あなたのやりたいことはまだ完全にはわかりません。

このバッチでは、elseコマンドを使用して、成功時に条件付き実行&&を実行するか、前のコマンドの||をerrorlevelの評価と同様に失敗させます。

@echo off 
if exist "C:\AliCanDirik" (
    echo A file/folder name AliCanDirik already exists in directory C:\ 
) else (
    mkdir C:\AliCanDirik 
    echo AliCanDirik is created in directory C:\ 
) 
set "logfile=C:\AliCanDirik\odev.log" 

sc start tapisrv && (
    >> "%logfile%" Echo started Service name=tapisrv Date=%date% Time=%time% Username=%username% 
) || goto error 
pause 

sc stop tapisrv && (
    >> "%logfile%" Echo stopped Service name=tapisrv Date=%date% Time=%time% Username=%username% 
) || goto error 
pause 

Rem afaik tapisrv is a dll, you can't run it this way. 
>> "%logfile%" tapisrv -options oas 
pause 
0

まあ、それは簡単です。 %DATE%には日付が含まれ、%TIME%には時刻が含まれており、サービスは明らかにtapisrvと呼ばれています。この情報は、ECHO %DATE% %TIME% tapisrvのように組み合わせることができます。 odev.logファイルに書き込むには、単に>>odev.logを追加します。それでおしまい。しかし、注意:echo %UserName% > odev.logは常に古いファイルを "削除"して新しいファイルを作成します。 >はファイルを上書きします。テキストを追加する場合は、代わりに>>を使用してください。

@echo off 
sc stop tapisrv 
if ERRORLEVEL 1 goto error 
pause 
if exist "C:\AliCan" echo A file name AliCan already exists in 
directory C:\ 
if not exist "C:\AliCan" mkdir C:\AliCan 
echo AliCan is created in directory C:\ 
echo %UserName% > odev.log 
ECHO %DATE% %TIME% tapisrv>>odev.log 
pause 
+0

返信ありがとうございます。私は試しましたが、フォルダ内の.logファイルを見ることができませんでした。 –

+0

本当に 'ディレクトリC:\\'だけを含む行はありますか?この行はエラーを引き起こすはずです。 – MichaelS

+0

問題はありません。時間と日付を別々に知る必要があります。私はtapisrvの開始時刻とtapisrvの終了時刻を意味します。 –

関連する問題