我們使用一段運行的軟件,完成後它會在標題中創建一個帶有完成日期和時間的文件。在通配符文件名上查找日期並與當前日期進行比較
在一個設定的文件夾中,每天都有一個文件,文件的主名稱是相同的,它只是文件名稱中的日期和時間被更改。
一旦創建了這個文件,我們知道該過程已經完成,然後我們想要運行一系列命令。
我們希望運行一個批處理文件來搜索文件名中當前日期的特定文件夾中的文件,然後找到該文件的日期,然後將其與當前日期進行比較。如果測試結果爲正面,我們知道該過程已經完成,然後我們可以繼續進行。如果日期不匹配,則會等待4分鐘並再次嘗試,直至找到今天創建的文件。
我遇到的問題是文件名是用不同於文件創建日期的順序創建的,所以我無法比較。我不知道如何改變這個,所以命令可以找到文件並比較日期。
停止/啓動服務的命令來自:相同的關閉正常工作正常,在單獨的批處理文件中進行了測試。這是我找不到的發現文件和日期比較部分。
正如你可能看到我在這種命令序列上有點生疏,也許我正在以這種錯誤的方式去做,所以一些幫助表示讚賞。
出於測試目的,我已放入回聲並暫停,以便我可以在測試時看到事情正在發生的地方。文件名有一個日期,當我嘗試和測試這個,但最終這將需要某種通配符插入當前日期,以搜索/比較。
這是我迄今放在一起:
REM .............Start Script.................
@echo on
:LOOP
set currentDate=%date%
SET filename="x:\DATA\File Upload Summary Report 2014-09-25*.*"
pause
FOR %%f IN (%filename%) DO SET filedatetime=%%~tf
Pause
REM next command displays date of screen so I can compare
ECHO %filedatetime:~0,-6% >> %destination%
Pause
IF %filedatetime:~0, 10% == %currentDate% goto same
goto notsame
:same
REM service stop & start commands
Echo Same
pause
net stop nxServerV3
REM wait for 5 seconds by using ping, then next line returns y
@ping -n 4 -w 1000 0.0.0.1 > NUL
CHOICE/cyn t:Y,5
REM start nexus server
@ping -n 4 -w 1000 0.0.0.1 > NUL
net start nxServerV3
REM wait for 5 seconds by using ping
@ping -n 4 -w 1000 0.0.0.1 > NUL
net start ConnectorService
@ping -n 4 -w 1000 0.0.0.1 > NUL
goto end
:notsame
REM Loop scrip after 4 minutes
Echo Not Same
echo Press any key to exit...
if ERRORLEVEL 1 goto end
timeout /t 240
goto :LOOP
:end
endlocal
感謝您的幫助。的方法
變化
OK,我修改了我的思維。由於文件是使用文件名中的日期和時間創建的,而不是比較日期,現在我只需將日期添加到文件名中,然後搜索該文件名即可。唯一的問題是文件名需要一個通配符,因爲文件名中有一些額外的細節,但不希望匹配那部分搜索。我剛剛忘記了這個序列,因爲它在查找文件時似乎沒有使用通配符,它似乎將通配符作爲文件名的一部分。除此之外,新方法似乎工作正常。
REM .............Start Script.................
Echo on
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set currentDate=%date%
set fulldate=%YYYY%-%MM%-%DD%
pause
SET filename="x:\DATA\File Upload Summary Report %fulldate%*.pdf"
pause
:LOOP
if exist filename goto restart
goto notexist
好的我已經修改了我會這樣做的方式。相反,我現在將正確格式的日期添加到文件名中,然後搜索該文件名。除了我之外的所有作品都有關於如何添加通配符的心理障礙。 – Phil 2014-09-26 04:54:39