This is a small utility to modify any kind of INI-Files. It is DOS-based, so you can easily do the modifications from your batchfile or your network login script. As example, you can add the TimerCriticalSection=10000 for all users in the SYSTEM.INI file, just by doing the following: Create a file named SYSTEM.CMD which contains: +[386enh]TimerCriticalSection=10000 And put the following command in you (system) login script: maintini.exe N:\WINDOWS\SYSTEM.INI SYSTEM.CMD After the new login, all your users have the new parameter set correctly for the new WINUP9 from Novell. A backupfile with the extension .BAK is made before modifying the file. Normaly all section, keys and values are NOT case sensitive. However _ and * give the possibility to match only if the case matches too. MAINTINI can process INI-Files of any size, even larger than 64kBytes. Just the CMD File should not have to much commands, because a dynamic list with all commands is created. (The actual upper limit are 600 commands, if you need more, then send me a mail or just splitt it in two cmd-files. Anyway, to process a INI-file with 600 commands to apply is just slow.) Commands of Maintini: -[section] The corresponding section is deleted -[section]Key The Key in section will be deleted -[section]Key=Value The Key is only deleted if the Value matches exactly This is used to delete device=... lines in system.ini _[section]Key=Value Same as - but Value is case sensitive Normaly not used. #[section] The corresponding section is commented #[section]Key The Key in section will be commented #[section]Key=Value The Key is only commented if the Value matches exactly This is used to comment device=... lines in system.ini @[section] The ; in front of the corresponding section is removed @[section]Key The ; in front of the Key in section is removed @[section]Key=Value The ; in front of the Key is removed, if the Value matches exactly This is used to uncomment device=... lines in system.ini +[Section]Key= Adds Key in Section. +[Section]Key=Value Adds Key and Value to section. &[Section]Key=Value This Key/Value is always inserted, even if already a key exists, but with a different value. Used to insert device=... lines in System.ini *[Section]Key=Value Same as &, but the value is casesensitive Normaly not used. ![Section]Key=Value A key is inserted in section, but a numeric value is added to Key, representing the highest+1 value of Key. (Only ?) used for Progman.ini to add new program groups [Section] Key1=Value1 Key2=Value2 Key3=Value3 ![Section]Key=ValueZ Gives [Section] Key1=Value1 Key2=Value2 Key3=Value3 Key4=ValueZ If the command in ![Section]Key=Value2 then the line is not duplicated. You can add multiple ! entrys per Section/Key pair in one pass >[Section]Key= Value Adds Value to an existing value. The old Value is preserved and the Value is added added at the end of the line. [Section] Key=Value0 >[Section]Key= Value1 Gives [Section] Key=Value0 Value1 It is very important, that you have a space or a period sign before the Value, this is to ensure that the , sign is placed at the right place (or even ignored if this is the first value). <[Section]Key=Value Deletes Value from the Key/Value line. Leading and trailing period-signs are cut off. r[Section]Original=NewValue The string is replaced with , but only in if [Section] is the current one. If you want to replace the Original in ALL sections (even in the section definition) then specify [] as the section. R[Section]Original=NewValue Same as r command, but the case must match. You should not use more than one < or > command for each Section/Key !!!! This does not behave correctly. If this is a limitation for you, then you can tell me why you want another version who can do this. I will then implement it, if I find the time to do it. In ALL Value-strings, you can insert a sequence %...%, to replace the text with the content of an DOS environment variable. +[boot]run=F:\USER\%USER%\WINDOWS\CAL.EXE %USER% will be replaced with the value of the USER - Environment variable. When It finds a single % in the line then the % remains in the value. If it finds %%, then it is replaced with a single %. So you can use F:\USR\%%USER%%\TEMP to be transformed into F:\USR\%USER%\TEMP. If you simply use F:\USR\%USER%\TEMP it will try to replace %USER% with the corresponing environment variable. You must use this, every time you have more than one % sign in the value, but don't want to replace it. If the specified environment variable does not exist, then a warning message is displayed on the screen, and the %...% is removed from the value. When you want to rename a section, then do the following: r[][OldSectionName]=[NewSectionName] Maintini then looks in each line for the Old-name and if it finds it, it replaces it with the new name. You should include the [..] to be shure, that only section headings are replaced. With the r command it is very easy to move a program/library to a new loaction. Of course you must take care to correct all other references to that location. (In the registeration database OLE, in DDE-statements and of course the program icon in the program manager.) MAINTINI is emailware, which means if you find this program usefull, you should send me a email. (Or a nice postcard if you don't have acess to a email system) If you send me a message, then I will inform you of all changes and new versions of this utility. My email adress: Compuserve : 100034,3536 Andre Schild Internet : 100034.3536@compuserve.com AT&T Mail : mhs!csmail!100034.3536 X400 : /c=US/ad=compuserve/pd=csmail/d.id=100034.3536 MCI : TO: Andre Schild EMS: COMPUSERVE/ MCI ID:281-6320 MBX: 100034,3536 MHS : MAIL@CSERVE {100034,3536} Postal adress: Andre Schild Pfeidstrasse 8 CH-2555 Bruegg b. Biel Switzerland