Avatar billede teamworker Nybegynder
30. juli 2003 - 16:58 Der er 5 kommentarer

bat-script til tilføjelse af parametre til .inifil

Hej Eksperten

Jeg har en inifil, hvor jeg ofte skal tilføje næsten identiske funktioner, så jeg har lavet et lille batjob til fornålet:

echo [%1.%2] >> "users.ini"
echo Login=%1.%2 >> "users.ini"
echo Pass=%3 >> "users.ini"
echo AllowChangePassword=1 >> "users.ini"
echo Home-Ip=-= All IP Homes =- >> "users.ini"
echo RelativePath=1 >> "users.ini"
echo TimeOut=600 >> "users.ini"
echo MaxConPerIp=1 >> "users.ini"
echo MaxUsers=0 >> "users.ini"
echo RatioMethod=0 >> "users.ini"
echo RatioUp=1 >> "users.ini"
echo RatioDown=1 >> "users.ini"
echo RatioCredit=0 >> "users.ini"
echo QuotaEnabled=1 >> "users.ini"
echo MaxSpeedRcv=512 >> "users.ini"
echo MaxSpeedSnd=512  >> "users.ini"
echo QuotaCurrent=0 >> "users.ini"
echo QuotaMax=%4000000 >> "users.ini"
echo Dir0=f:\www\%1\ >> "users.ini"
echo Attr0=RWDAMLSK >> "users.ini"
echo Stat_Login=0 >> "users.ini"
echo Stat_LastLogin=30-12-1899 >> "users.ini"
echo Stat_LastIP=Unknown >> "users.ini"
echo Stat_KBUp=0 >> "users.ini"
echo Stat_KBDown=0 >> "users.ini"
echo Stat_FilesUp=0 >> "users.ini"
echo Stat_FilesDown=0 >> "users.ini"
echo Stat_FailedUp=0 >> "users.ini"
echo Stat_FailedDown=0 >> "users.ini"

Ovenstående ser rigtigt ud, men ender med et melklemrum for enden af alle linier
Ændrer jeg scriptet til:
.....
echo Stat_FilesDown=0>> "users.ini"
echo Stat_FailedUp=0>> "users.ini"
echo Stat_FailedDown=0>> "users.ini"

forsvinder sidste linie og udskrives ikke til filen.
Af og til er der også andre sjove fejl i liner der ender på =0

Nogen forslag?
Avatar billede bertelbrander Novice
30. juli 2003 - 17:25 #1
Det kunne være at problemet med 0>> skyldes at den tror at 0 betyder stdin, i så fald ville det måske hjælpe at skrive:
echo Stat_FailedUp=^0>> "users.ini"
Du kan måske løse problemet med at den sidste linie mangler ved at tilføje en tom linie til slut (echo.>>"users.ini").
Jeg går ud fra at %4 i linien
echo QuotaMax=%4000000 >> "users.ini"
Betyder den fjerde parameter.
Hvis du skal have mere hjelp ville det være rart at vide hvilken Windows version du bruger.
Avatar billede teamworker Nybegynder
06. august 2003 - 01:09 #2
Tak, det hjalp på det meste, men i første linie
echo [%1.%2]>> "users.ini"
kommer der et mellemrum efter ], kan du også komme af med det?
Avatar billede bertelbrander Novice
06. august 2003 - 01:19 #3
Jeg kan ikke se nogen grund til at der skulle komme et mellemrum efter ], medmindre der er et mellemrum i bat-filen. Er det kun i den første linie der kommer et mellemrum?
Avatar billede teamworker Nybegynder
06. august 2003 - 22:46 #4
echo [%1.%2]>> "users.ini" bliver f.eks. til
[a.b]_
_=mellemrum

Det er kun i den ene linie. Jeg ved ikke om det har noget at gøre med ]?
Alt andet virker perfekt.
Avatar billede bertelbrander Novice
06. august 2003 - 23:31 #5
Jeg kan ikke fremprovokere fejlen på Windows 2000 eller 98, så jeg kan kun komme med et par forslag:

Hvis du bruger NT/2000/XP kan du prøve med:
echo ^[%1.%2^]>> "users.ini"

På alle Windows versioner kan du prøve:
set xxx=[%1.%2]
echo %xxx%>> "users.ini"
set xxx=
Indsæt evt. en echo --%xxx%--- inden set xxx= så vi kan se om der er mellemrum efter ] i xxx

Måske tror den at %1.%2 er et filnavn og laver sjove ting, så du kan prøve med:
set xxx=%1
set yyy=%2
set zzz=%xxx%.%yyy%
set www=[%zzz%]
echo %www%>>users.ini

Måske kan den ikke lide mellemrum efter >>

Måske vil den ikke have "" omkring users.ini
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester