嘿我决定尝试在我的电脑上制作账单/发票注册系统,因为我简直就是这样一个笨拙的混乱头脑,每次我收到一张账单,如果我没有付账单,瞬间(因为我很忙)我会忘记我的账单放在哪里。账单/发票注册系统
所以我正在制作这个程序,它会告诉我所有需要的信息,如果我忘记原始纸张的位置。
脚本本身工作正常。但我正在努力的部分是:
当我注册账单的所有细节时,它会在程序所在的用户名文件夹内创建一个文件夹,其中包含我支付账单的实例的名称。
然后在该文件夹内,它会创建一个包含所有信息的文本文件。如果我决定用不同的实例注册另一个账单。那么同样的事情又会发生。
但是,当它将使目录变为带有文件的实例名称时出现错误。
有时会出现在主程序文件夹中,而不是用户文件夹。有时它出现在文件夹中,因为它应该...
但现在它不会创建txt的所有...我想我搞砸了代码的地方,但我不知道我在哪里搞砸了,所以我希望有人会看一下剧本。我只是不知道错误来自哪里:P
@echo off
title Bill Registration. V1.0- Computer-ID: %USERNAME%%
goto registercheck
:main
cls
echo.
echo.
echo.
echo.
echo.
echo User: %usrn%
echo ===========================
echo Bill register/database Menu
echo ===========================
echo ^| 1. -Register a bill ^|
echo ^| 2. -Check Bill Info ^|
echo ^| 3. -Edit bill ^|
echo ___________________________
set /P Q=". Console: "
IF %Q%==1 goto billreg
IF %Q%==2 goto checkbill
IF %Q%==3 goto editbill
IF "%Q%"=="" call invalid
echo.
echo.
echo.
echo.
:registercheck
cls
set usrn=
echo.
echo.
echo.
echo.
echo User: Not logged in
echo ===========================
echo User Check
echo ===========================
echo ^| Type Your username ^|
echo ^| to check if it is ^|
echo ^| Existing ^|
echo ___________________________
set /P usrn=". Username:"
if exist C:\Users\%USERNAME%\Documents\billregister\%usrn% goto login
if not exist C:\Users\%USERNAME%\Documents\billregister\%usrn% goto userreg
goto main
:invalid
:login
cls
echo Please log in to your account!
set usr=
set /p usr=Username:
if {%usr%}=={} goto :login
set authenticated=
for /f "tokens=*" %%a in (C:\Users\%USERNAME%\Documents\billregister\%usrn%\usrn.dll) do (
if {%%a}=={%usr%} set authenticated=true
)
if not defined authenticated (echo Invalid Username & goto :login)
:passwo
set pass=
set /p pass=Enter your password:
if {%pass%}=={} goto :login
set authenticated=
for /f "tokens=*" %%a in (C:\Users\%USERNAME%\Documents\billregister\%usrn%\usrnp.dll) do (
if {%%a}=={%pass%} set authenticated=true
)
if not defined authenticated (echo Invalid password & goto :login)
:loggedin
goto main
:userreg
cls
echo ===========================
echo Please Register
echo ===========================
Set usrname=
set /p usrname=". Username:"
Set passw=
set /p passw=". Password:"
MKDIR C:\Users\%USERNAME%\Documents\billregister\%usrname%\
echo %usrname%> C:\Users\%USERNAME%\Documents\billregister\%usrname%\usrn.dll
echo %passw%> C:\Users\%USERNAME%\Documents\billregister\%usrname%\usrnp.dll
goto login
:retrievebill
:checkbill
:billreg
cls
echo User: %usrn%
echo ===========================
echo Bill register form
echo ===========================
echo ^| Fill out the form ^|
echo ^| In order to register ^|
echo ^| Your bills ^|
echo ___________________________
set orgname=
set /p orgname=". Payment to(name):"
set orgacc=
set /p orgacc=". Payment to account:"
set faknr=
set /P Faknr=". FAKTURA-Number:"
set efakref=
set /p efakref=". E-Faktura Ref:"
set totpay=
set /p totpay=". Total ammount to pay:"
set duetodate=
set /p duetodate=". Due to date:"
set kidnr=
set /p kidnr=". KID-Number:"
set payfor=
set /p payfor="Write a short describtion of what you pay for:"
if exist cd/ C:\Users\%USERNAME%\Documents\billregister\%usrname%\bills\%orgname% goto writebill
if not exist cd/ exist C:\Users\%USERNAME%\Documents\billregister\%usrname%\bills\%orgname% goto makedirectory
:makedirectory
MKDIR C:\Users\%USERNAME%\Documents\billregister\%usrn%\bills\%orgname%\goto writebill
:writebill
(
echo E-Faktura Referance: %efakref%
echo KID-Number: %kidnr%
echo =================================================================
echo Bill from: %orgname% Faktura number: %faknr%
echo =================================================================
echo pay-to Account number: %orgacc%
echo.
echo Due to date: %duetodate%
echo.
echo Describtion of what you pay for:
echo ________________________________________________________________
echo %payfor%
echo ================================================================
echo Total Ammount to pay: %totpay% -NOK
) > C:\Users\%USERNAME%\Documents\billregister\%usrname%\bills\%orgname%\bill_%orgname%_faktura%faknr%.txt
Pause>nul
goto registeredbill
:registeredbill
cls
echo The bill is now saved
pause>Nul
goto billreg
:editbill
神圣的文字障碍。所有这一切都在两条线上。 。 。 – Bloodied
编辑。将文本缩短了一小段,并将其分段。更好? –
在你的':makedirectory'标签中,你有一个'goto:label'命令连接到没有引号的目录,没有'&'分隔符。 – Bloodied