Batch file 向变量添加空间的批处理文件
这是我最近几天一直在使用的备份批处理文件。直到今天早上,它一直运转良好。出于某种原因,当它创建变量Batch file 向变量添加空间的批处理文件,batch-file,command-line,cmd,window,Batch File,Command Line,Cmd,Window,这是我最近几天一直在使用的备份批处理文件。直到今天早上,它一直运转良好。出于某种原因,当它创建变量foldername时,它在字符串中包含一个以前没有的空格。结果是这样的: @ECHO OFF CLS REM Start Backup TITLE Backup SETlocal EnableDelayedExpansion REM Capture the date/time(right down to the second) and then assign it to a variabl
foldername
时,它在字符串中包含一个以前没有的空格。结果是这样的:
@ECHO OFF
CLS
REM Start Backup
TITLE Backup
SETlocal EnableDelayedExpansion
REM Capture the date/time(right down to the second) and then assign it to a variable
SET yy=%date:~-4%
SET dd=%date:~-7,2%
SET mm=%date:~-10,2%
SET newdate=%dd%%mm%%yy%_%Time:~0,8%
SET newdate=%newdate::=%
SET foldername=svetlana_backup_%newdate%
REM Variables
SET drive=R:
SET sevenZip=%USERPROFILE%\7z.exe
SET destination=R:\Backup
ECHO Running Backup Batch File
ECHO Please Plug in %drive%
PAUSE
ECHO %foldername%
MKDIR %destination%\%foldername%
FOR /F "tokens=1,2 delims=," %%i IN (backuplist.txt) DO (
SET completeSource=%%i
SET completeDestination=%destination%\%foldername%\%%j
ECHO Source: "!completeSource:"=!"
ECHO Destination:"!completeDestination:"=!"
MKDIR "!completeDestination:"=!"
XCOPY "!completeSource:"=!" "!completeDestination:"=!" /E /F
)
REM Zip the folder using the 7z command line utility
%sevenZip% a -tzip %destination%\%foldername%.zip %destination%\%foldername%
REM Remove the unzipped backup folder
RMDIR /Q /S %destination%\%foldername%
PAUSE
EXIT
由于某种原因,直到今天,仪表板和93829之间的空间才出现。如何删除它并防止它再次发生?您可以像这样解析文件-/foldername
set foldername=%foldername:=%
这将用空字符串替换所有空格
这个问题很可能是因为测试运行的时间只有一位数字。使用该
%时间:~0,8%
将输出包含额外空间的时间,因为时间将按如下方式存储:9:38:29
,这是7个字符,您读取了最后8个字符。有效(给我9分钟,让我等待,然后再接受答案),但为什么突然出现了这个问题?直到今天才发生。编辑的答案:)将空格替换为零而不是删除可能是更好的解决方案(所有文件的格式相同,因此易于排序)
svetlana_backup_22092016_ 93829