批量脚本填充" 0"进入脚本以及一些错误修复

时间:2017-11-09 12:52:59

标签: batch-file

目前我使用我创建的批处理文件遇到了一些问题。:

1)我一直试图在02-09的文件版本中实现填充,然后恢复为10,11等...例如创建的文件可以称为delivery_20-11-17_02.txt但是我需要它有填充,所以当它版本升级时它将是delivery_20-11-17_02.txt。如果它到达版本10,它将需要像delivery_20-11-17_10.txt一样。

2)创建新文件时,它会像delivery_2017-11-09_.txt一样保存。对于该文件的第一个版本,有一个不必要的下划线。一旦文件从版本2开始版本化而不是从创建的第一个文件开始版本化,我需要使用下划线。

3)在我可以选择命名文件的代码部分,还有一个我不确定如何解决的错误。例如,我创建文件,我选择更新文件名并命名为" cat"它将保存为delivery_2017-11-09_cat_02.txt。但是,我希望这个cat文件最初是delivery_2017-11-09_cat.txt。然后,如果我选择更新文件名并再次命名为cat,则会创建版本2 delivery_2017-11-09_cat_02.txt。没关系。

4)当我选择"更新版本"文件将像delivery_2017-11-09__2一样保存。在版本号之前出现双下划线。我需要那里只有一个强调他们的。我知道这与2号问题有关。

以下是完整的代码:

@echo off

:prep
cls
set filename=
set mydate=
set newname=
set version=1
For /f "tokens=1-3 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%b-%%a)
set choice=

set filename="../delivery_%mydate%_%newname%.txt"
::set filename="../delivery_%mydate%_%version%.txt"
echo %filename%
pause

:_CHECKEXIST
cls
IF EXIST %Filename% ( 
    GOTO _MAINMENU 
) Else ( 
    GOTO start 
)
:_MAINMENU

ECHO.
ECHO Choose on of the the following options:
ECHO 1.   Update filename 
ECHO 2.   Update version 
ECHO 3.   Quit
ECHO.
SET /P Choice="Enter your selection. [1,2,3]: "
IF /I "%Choice%"=="1" GOTO addname
IF /I "%Choice%"=="2" GOTO versionup
IF /I "%Choice%"=="3" (
    GOTO _END
) ELSE (
    CLS
    GOTO _MAINMENU
)
:addname
echo Enter addition to file name
set /p newname=
set filename="../delivery_%mydate%_%newname%.txt"
echo File name is now %filename%.
::set choice3 =
::set /p choice3=(y / n)

::if '%choice3%'=='' ECHO "%choice3%" is not valid please try again

::if '%choice3%'=='y' goto versionup
::if '%choice3%'=='n' goto addname


:versionup
set /A version=version+1

echo version is %version%
::FOR /F "tokens=* delims=0" %%A IN ("%Var%") DO SET Var=%%A
set filename="../delivery_%mydate%_%newname%_%version%.txt"
if EXIST "%filename%" goto :versionup  

:start


echo.

echo Choose the following:
echo 1. Directories
echo 2. Files
echo 3. quit
echo.

set /p choice= 
if '%choice%'=='1' goto directory
if '%choice%'=='2' goto file
if '%choice%'=='3' goto end
cls
ECHO "%choice%" is not valid please try again
goto start


:directory
dir /ad /on /b > %filename%
echo. 
goto checksuccess


:file
dir /a-d /on /b > %filename%
echo.
goto checksuccess


: checksuccess
if EXIST %filename% ( 
    echo %filename% written successfully 
) else (
    echo file not written
)


:end
echo.

0 个答案:

没有答案