Robocopy网站部署脚本日志文件名在AM中被截断

这是我开始编写的IIS网站部署脚本。 它将文件从目录A移动到目录B,并创build一个date/时间为文件名的日志文件。 当它在AM时间运行时,日志文件名称的时间部分由于空格而被截断。 我怎样才能解决这个问题,使它在白天的所有时间都能正常工作(例如:00.00.01,00.00.11,00.01.11,00.11.11,01.11.11和11.11.11给出了一些例子)? 如果你喜欢“9”,那么用9s。 当我们在文件名中有0时会发生截断。我认为它将它视为一个空格。 我看了这几个月已经过去了,但是更重要的项目出现了,我把它放在一边。 我们只是在晚上安排部署。 哈哈! 本质上,我想尽可能less使用IF语句 – 但如果你有一吨,我真的不在乎。 如果你的武器里有什么东西,真棒! :-)脚本使用“。” (不是“:”)的时间分隔符,因为在文件名中不允许冒号。 如果你被困住了,就说“MacGruber!” 喝一杯百事可乐的饮食。

先决条件:
– 您需要创buildUI.Web文件夹
– 您需要所需的path中的Robocopy.exe文件
– 在运行脚本之前需要一个“日志”文件夹

REM ************************************************************** REM * TITLE: LIMS Deployment Script * REM * AUTHOR: MacGyver * REM * PURPOSE: Deployment Script for IIS Web Server Files * REM * - include all files recursively * REM * - excluded folders: .svn/obj * REM * - excluded files: *.config, *.vb, *.cs, *.resx, * REM * *.vbproj, *.user, *.suo, AND others * REM * ASSUMES: UI.Web folder already exists * REM ************************************************************** SET ROBOCOPY=".\robocopy.exe" SET SOURCEDIR="\\tsclient\C\Source\websitename\UI.Web" SET TARGETDIR="D:\web\docs\UI.Web" SET DYYYY=%date:~-4,4% SET DMM=%date:~-10,2% SET DDD=%date:~-7,2% SET THH=%time:~0,2% SET TMM=%time:~3,2% SET TSS=%time:~6,2% REM - copy from one folder to another - the time doesn't work if you deploy the code in the AM, we need to fix that %ROBOCOPY% %TARGETDIR% %TARGETDIR%_%DYYYY%-%DMM%-%DDD%_%THH%.%TMM%.%TSS% /S REM - modify original folder with deployment changes & log the changes to a *.log file %ROBOCOPY% %SOURCEDIR% %TARGETDIR% *.* /S /NP /XO /XD .svn obj /XF *.config *.vb *.cs *.resx *.vbproj *.user *.resources *.user *.suo > .\logs\Deployed_%DYYYY%-%DMM%-%DDD%_%THH%.%TMM%.%TSS%.log iisreset 

我不得不几次读你的问题来理解它。 我想你需要换掉THHvariables的设置。 更改:

 SET THH=%time:~0,2% 

 FOR /F "tokens=1-3 delims=: " %%a IN ('TIME /t') DO SET THH=%%a 

如果它将分钟的全部两位数字删除,则可以将TMMreplace为

 FOR /F "tokens=1-3 delims=: " %%a IN ('TIME /t') DO SET TMM=%%b 

你可以做这个variablesreplace,通过改变…

 SET THH=%time:~0,2% 

…至…

 SET THH=%time:~0,2% SET THH=%THH: =0% 

第二行用%THH%replace%THH%所有空格。

请参阅SET /? 更多细节。