[vbs] Führende Nullen einfügen

Raknar

Ensign
Registriert
Apr. 2006
Beiträge
204
Hi
Ich würde gerne ein Script schreiben, dass im aktuellen Verzeichnis alle Dateien durchnummeriert.
Das funktioniert auch schon, nur will ich noch führende Nullen, allerdings nicht über eine Stringoperation.
Code:
set fso = CreateObject("Scripting.FileSystemObject")
set folder = fso.GetFolder(".")
Dim a
a = 0  'zähler

For Each File in folder.Files
	orgn = file.Name   'orginal name
	
	If Not file.name = "dateien_nummerieren.vbs" then  'damit die scriptdatei sich nicht auch ändert
	       file.Name = a &"_" &orgn  'lfd nummer plus name
		a = a--1 'zähler erhöhen
	end If
Next

MsgBox "Nummerierung durchgeführt"

Früher gab es eine Format-Funktion: etwa so Format (3, 000) -> a= 003
Doch anscheinend gibt es die nicht mehr und FormatNumber geht nur mit Dezimalzahlen, bäuchte aber für ganze Zahlen

Da muss es doch einen einfachen Trick geben?!
Vielen Dank im Voraus
 
Zuletzt bearbeitet:
Nein, das ist altes vbs^^
Früher war + nur zum anhängen zb: 1+2=12
Wie gesagt, das Programm funktioniert, die Zahlen am Anfang steigen wie sie sollen. Mit führenden Nullen wären sie nur besser geordnet.
 
Hi,

hast du beim dimensionieren mal folgendes probiert ?
Code:
dim a as Integer
a = 0000000

bin mir nicht sicher obs funst bin aber der meinung es schon mal gesehen zu haben
 
Nein, das funktioniert auch nicht. Gibt sogar einen Fehler, da bei "as" ein Anwendungsende erwartet wurde, wie hier im kleinen Versuch:
Code:
dim a [COLOR="Red"][U]a[/U][/COLOR]s integer
a=001

MsgBox a+1
 
mach einfach noch ne schleife vor
file.Name = a &"_" &orgn 'lfd nummer plus name
, die dir einen string mit nullen zusammenbastelt.

die funktion format gibt es leider nur in vba.

oder du fängst mit einer zahl 0.00001 an, rechnest entsprechend drauf und entfernst dann den punkt aus dem dateinamen.
oder fängst bei 10000 an hochzuzählen
 
Zuletzt bearbeitet:
Ich hätte jetzt mal auf ...

Code:
file.Name = Format(a, "00") & "_" & orgn

... getippt.

Alternativ noch

Code:
file.Name = Right("00" & a, 2) & "_" & orgn

Das wäre aber dann eine String Operation die du laut deiner Fragestellung vermeiden wolltest.
 
Zuletzt bearbeitet:
Tja, auf die Idee mit a =10000 bin ich auch schon gekommen. Aber die Idee mit dem Löschen des Punktes ist echt gut!

Vielen Dank
 
Zurück
Oben