從任務計劃程序運行時,Bat 檔案不記錄?

從任務計劃程序運行時,Bat 檔案不記錄?

我製作了一個重新啟動 2 個服務的 bat 文件,並讓它在任務計劃程式中運行。如果我正常運行bat文件,我可以看到它作為bat文件登入在當前目錄中。但是如果我通過任務計劃程序運行它,我可以看到bat運行,就像在服務視窗中一樣,我可以看到服務正在重新啟動,但它沒有記錄任何內容......有誰知道問題是什麼?

這是在 Windows Server 2008 r2 64 位元上。

謝謝

@echo off
SET waittimeseconds_sp_fix=15
SET logfilename_sp_fix="SPSearchFix.log"

echo %date% %time% - Restart starting >> %logfilename_sp_fix%


net stop SPTimerV4 >> %logfilename_sp_fix% 2>&1
if ERRORLEVEL 0 (
    echo %date% %time% - WORKED - Stopped timer service >> %logfilename_sp_fix%
) ELSE (
    echo %date% %time% - FAILED - Stopped timer service >> %logfilename_sp_fix%
    exit
)

timeout %waittimeseconds_sp_fix%

net stop osearch14 >> %logfilename_sp_fix% 2>&1
if ERRORLEVEL 0 (
    echo %date% %time% - WORKED - Stopped search service >> %logfilename_sp_fix%
) ELSE (
    echo %date% %time% - FAILED - Stopped search service >> %logfilename_sp_fix%
    exit
)    

timeout %waittimeseconds_sp_fix%

net start SPTimerV4 >> %logfilename_sp_fix% 2>&1
if ERRORLEVEL 0 (
    echo %date% %time% - WORKED - Started timer service >> %logfilename_sp_fix%
) ELSE (
    echo %date% %time% - FAILED - Started timer service >> %logfilename_sp_fix%
    exit
)

timeout %waittimeseconds_sp_fix%

net start osearch14 >> %logfilename_sp_fix% 2>&1
if ERRORLEVEL 0 (
    echo %date% %time% - WORKED - Started search service >> %logfilename_sp_fix%
) ELSE (
    echo %date% %time% - FAILED - Started search service >> %logfilename_sp_fix%
    exit
)

timeout %waittimeseconds_sp_fix%

echo %date% %time% - Restart completed >> %logfilename_sp_fix%

echo. >> %logfilename_sp_fix%
echo. >> %logfilename_sp_fix%
echo. >> %logfilename_sp_fix%
echo. >> %logfilename_sp_fix%
echo. >> %logfilename_sp_fix%
echo. >> %logfilename_sp_fix%

答案1

當您在任務計劃程序中運行任務時,工作資料夾(預設)是%windri%\system32.因此,任務創建的任何未指定路徑的文件都將寫入那裡(或至少它會嘗試將它們寫入那裡)。

為了避免這種情況,請在行中指定絕對路徑SET logfilename_sp_fix="SPSearchFix.log"

例如:SET logfilename_sp_fix="c:\temp\SPSearchFix.log

並確保所有使用者(或至少是執行任務的使用者)對該所選資料夾具有寫入權限。

相關內容