Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mit VBScript oder Batch Dateinamen und Dateiendung automatisch umbenennen

Frage Entwicklung VB for Applications

Mitglied: highpriest

highpriest (Level 1) - Jetzt verbinden

16.05.2008, aktualisiert 14.02.2015, 19330 Aufrufe, 16 Kommentare

Hallo, Experten!
Ich brauche Eure Hilfe, da ich mit VBScripten und Batchen nicht so richtig auskenne.
Ich habe zwar schon versucht selber was zu schreiben, aber leider hatte bis jetzt noch kein richtiges Ergebnis.
Zu meinem Problem:
Mit einem TIF-Druckertreiber erstellen wir aus unserem Warenwirtschaftsystem die Belege für Archivsystem.
Die Datein mussen für Import Dateiendung *.tif haben. Der Drucker erstellt aber die Dateien
mit Endung *.000 und für folgende Dateien wird die Endung hexadezimal hochgezählt.

Jetzt am Beispiel:
Im Verzeichnis C:\Dokumente liegen nach dem Druck die Dateien:

PRINT.000 PRINT.001 PRINT.002 usw. (sind aber die tif's)

Für den Import mussen die Dateien umbenannt werden und zwar so,
das die Dateiname aktuelles Datum + fortlaufenden Zähler und die Dateiendung *.tif bekommt:

PRINT160508_1.tif PRINT160508_2.tif PRINT160508_3.tif usw.

Die vorhandene Dateien dürfen nicht überschrieben werden, sondern weiter hochgezählt.
Es wird von mehreren Clients in ein Verzeichnis im Netzwerk gedruckt und anschließend
soll sofort Script/Batch ausgeführt werden. (ich kann Script/Batch im TIF-Druckertreiber einbinden).

Ich weiß nicht was in diesem Fall besser ist VBScript oder Batch.
Ich denke Script, da beim Batch wird ja nach jedem Druckvorgang ein DOS-Fenster geöffnet und geschloßen,
und dieses Flackern wird bestimmt meinen Mitarbetern nicht gefallen.

Ich würde mich wirklich sehr freuen, wenn jemand für mein Problem was basteln könnte.
Ich bedanke mich schon mal im Voraus!
highpriest
Mitglied: SarekHL
16.05.2008 um 22:44 Uhr
Mit VB Script kenne ich mich nicht aus, aber wenn sonst niemand hier eine Idee hat, kann ich Dir mal was in VB schreiben ... eine ähnliche Geschichte habe ich mir selber mal programmiert, das müßte nur leicht angepaßt werden ...
Bitte warten ..
Mitglied: highpriest
16.05.2008 um 23:56 Uhr
Für jeden Vorschlag wäre ich natürlich sehr dankbar!
Ich weiß zwar nicht was der Unterschied zw. VB Script und VB ist, aber wenn es mein Problem löst
würde ich mich freuen.
Bitte warten ..
Mitglied: tacker
17.05.2008 um 00:02 Uhr
abend

hab ma folgenden vbscript codeschnipsel zusammengepfercht!

01.
dim fso 
02.
set fso = createobject("scripting.filesystemobject") 
03.
 
04.
verzeichnis = "C:\Dokumente und Einstellungen\bla" 
05.
 
06.
set folder = fso.getfolder(verzeichnis) 
07.
set files = folder.files 
08.
 
09.
for each file in files 
10.
if not right(file.name, 3) = "tif" then 
11.
	newfile = left(file.path, instr(file.path, file.name)-1) & left(file.name, instr(file.name, ".")) & date() & "_" & right(file.name, 3) & ".tif" 
12.
	if not fso.fileexists(newfile) then 
13.
		file.copy(newfile) 
14.
	end if 
15.
end if 
16.
next
brauchst eigentlich nur den verzeichnispfad anzugeben und kannst es probehalber ma rennen lassen!

nur eine frage, was is wenn der zähler über die dreistellige zahl hinausläuft?

gruss tacker

edit:

dank dem tageswechsel noch nen "fehler" entdeckt, deshalb bitte den folgenden code nehmen, wenn nicht an jedem tag für alle files ein neues .tif erstellt werden soll anstatt dem aktuellen datum wird das jeweilige erstellungsdatum der datei genommen.

01.
dim fso 
02.
set fso = createobject("scripting.filesystemobject") 
03.
 
04.
verzeichnis = "C:\Dokumente und Einstellungen\bla" 
05.
 
06.
set folder = fso.getfolder(verzeichnis) 
07.
set files = folder.files 
08.
 
09.
for each file in files 
10.
if not right(file.name, 3) = "tif" then 
11.
	newfile = left(file.path, instr(file.path, file.name)-1) & left(file.name, instr(file.name, ".")) & left(file.datecreated, instr(file.datecreated, " ")-1) & "_" & right(file.name, 3) & ".tif" 
12.
	if not fso.fileexists(newfile) then 
13.
		file.copy(newfile) 
14.
	end if 
15.
end if 
16.
next
Bitte warten ..
Mitglied: highpriest
17.05.2008 um 01:19 Uhr
@ tacker
wow, das ging ja richtig schnell!
Ich kann es leider erst am Montag testen (kann nicht mehr erwarten )
Ich werde abends dann berichten.
Ich danke dir jetzt schon mal für deine Mühe!!!

nur eine frage, was is wenn der zähler über die dreistellige zahl hinausläuft?

Das wird nicht passieren, da nach dem Import ins Archivsystem wird der Verzeichnis automatisch entleert. Der Import wird min. alle 2 Tage laufen und so viele Belege werden in dieser Zeit nicht erstellt.
Bitte warten ..
Mitglied: bastla
17.05.2008 um 01:39 Uhr
Hallo highpriest und willkommen im Forum!

... dieses Flackern wird bestimmt meinen Mitarbetern nicht gefallen.
Würden sie lieber den Status Quo behalten?

Aber gut, den Speicherplatz für die paar Zeilen, die ein VBScript gegenüber einem Batch mehr benötigt, werden wir wohl noch auftreiben ...
Der folgende Entwurf erzeugt, abweichend von Deiner Vorgabe, Dateinamen nach folgendem Schema: "PRINT20080517_0001.tif" - damit lassen sich die Dateien vor allem leichter sortieren.
01.
Const Folder = "C:\Dokumente" 
02.
OldName = UCase("PRINT.") 'zur Erkennung der Originaldateien 
03.
 
04.
Const NewName = "PRINT" 
05.
Const NewExtension = ".tif" 
06.
Const Digits = 4 'Stellenanzahl der laufenden Nummer 
07.
 
08.
Const adVarChar = 200 
09.
Set DataList = CreateObject("ADOR.Recordset") 
10.
DataList.Fields.Append "FileName", adVarChar, 255 
11.
DataList.Fields.Append "FileDate", adVarChar, 20 
12.
DataList.Open 
13.
 
14.
OldNameLen = Len(OldName) 
15.
MaxNo = String(Digits, "0") 
16.
 
17.
Set fso = CreateObject("Scripting.FileSystemObject") 
18.
For Each File In fso.GetFolder(Folder).Files 
19.
	FN = File.Name 
20.
	If UCase(Left(FN, OldNameLen)) = OldName Then 
21.
		DataList.AddNew 
22.
		DataList("FileName") = FN 
23.
		FileDate = CStr(File.DateLastModified) 
24.
		DataList("FileDate") = Mid(FileDate, 7, 4) & Mid(FileDate, 4, 2) & Mid(FileDate, 1, 2) & Mid(FileDate, 11) 
25.
		DataList.Update 
26.
	ElseIf InStrRev(FN, "_") Then 
27.
		P1 = InStrRev(FN, "_") + 1 
28.
		P2 = InStrRev(FN, ".") 
29.
		If P2 > P1 Then 
30.
			CurrNo = Mid(FN, P1, P2 - P1) 
31.
			If Len(CurrNo) = Digits Then If CurrNo > MaxNo Then MaxNo = CurrNo 
32.
		End If 
33.
	End If 
34.
Next 
35.
 
36.
No = CLng(MaxNo) + 1 
37.
 
38.
If Not DataList.EOF Then 
39.
	DataList.Sort = "FileDate" 
40.
	DataList.MoveFirst 
41.
	Do Until DataList.EOF 
42.
		File = Folder & "\" & DataList.Fields.Item("FileName") 
43.
		NewDate = Left(DataList.Fields.Item("FileDate"), 8) 
44.
		NewNo = Right(String(Digits, "0") & CStr(No), Digits) 
45.
		fso.GetFile(File).Name = NewName & NewDate & "_" & NewNo & NewExtension 
46.
 
47.
		No = No + 1 
48.
		DataList.MoveNext 
49.
	Loop 
50.
End If
Hinsichtlich der laufende Nummer bin ich davon ausgegangen, dass nicht an jedem Tag mit 1 begonnen, sondern, unabhängig vom Datum, immer weiter hochgezählt werden soll (sag Bescheid, falls dies nicht gewünscht sein sollte). Die Schreibweise mit führenden Nullen (Stellenanzahl siehe "Const Digits") erlaubt ggf eine einfachere Nachbearbeitung.

Den von tacker gemachten Vorschlag, anstelle des Tagesdatums das Erstellungsdatum der Originaldatei zu verwenden, finde ich ebenfalls sinnvoll (allerdings verwende ich das Änderungsdatum, um das Script etwas universeller einsetzbar zu machen).

Zusätzlich bin ich davon ausgegangen, dass die Reihenfolge der Dateien beibehalten werden soll - daher sortiere ich diese vorweg nach dem Änderungsdatum. Auch, wenn eigentlich jede Datei sofort verarbeitet werden sollte, sorge ich damit für den Fall vor, dass, bedingt durch das zwischenzeitliche Umbenennen, nachfolgende Dateien eine schon wieder frei gewordene niedrigere Nummer (also zB .000) vom Druckertreiber erhalten könnten (nähere Informationen dazu könntest Du uns noch geben). Außerdem kann so das Script auch unabhängig von einem "Ausdruck" ausgeführt werden, um alle noch nicht umbenannten Dateien nachträglich bearbeiten zu können.

Grüße
bastla
Bitte warten ..
Mitglied: highpriest
17.05.2008 um 19:15 Uhr
Hallo, bastla!
Ich danke Dir für deine Arbeit, ich bin begeistert!!!
Der folgende Entwurf erzeugt, abweichend von Deiner Vorgabe, Dateinamen nach folgendem Schema: "PRINT20080517_0001.tif" - damit lassen sich die Dateien vor allem leichter sortieren.
Super Vorschlag, so weit habe ich noch nicht gedacht. Die Sortierung ist nämlich sehr wichtig und zwar in der Reihenfolge, wie es gedruckt wird.
Hinsichtlich der laufende Nummer bin ich davon ausgegangen, dass nicht an jedem Tag mit 1 begonnen, sondern, unabhängig vom Datum, immer weiter hochgezählt werden soll (sag Bescheid, falls dies nicht gewünscht sein sollte). Die Schreibweise mit führenden Nullen (Stellenanzahl siehe "Const Digits") erlaubt ggf eine einfachere Nachbearbeitung.
Genial.
Zusätzlich bin ich davon ausgegangen, dass die Reihenfolge der Dateien beibehalten werden soll - daher sortiere ich diese vorweg nach dem Änderungsdatum. Auch, wenn eigentlich jede Datei sofort verarbeitet werden sollte, sorge ich damit für den Fall vor, dass, bedingt durch das zwischenzeitliche Umbenennen, nachfolgende Dateien eine schon wieder frei gewordene niedrigere Nummer (also zB .000) vom Druckertreiber erhalten könnten (nähere Informationen dazu könntest Du uns noch geben). Außerdem kann so das Script auch unabhängig von einem "Ausdruck" ausgeführt werden, um alle noch nicht umbenannten Dateien nachträglich bearbeiten zu können.
Super! Du hast wirklich an alles gedacht, solche Fälle könnten wirklich auftretten. Und wie ich schon sagte, die sortierung ist sehr wichtig!
Nur eine Sache habe ich am Anfang vergessen. Im Ordner liegen auch noch die gescannte Beläge, die heißen z. B. SCAN0510.tif SCAN0511.tif SCAN0512.tif usw.. Was passiert mit dennen, werden sie auch als PRINT......tif umbenannt oder nicht. Nach Möglichkeit sollen sie in dem gleichen Ordner landen und unverädert bleiben.
Ist das Möglich oder ist das zu viel verlangt?
Gruß
highpriest
Bitte warten ..
Mitglied: tacker
17.05.2008 um 20:37 Uhr
salü!

deine letzte frage braucht dich nicht zu beunruhigen! in bastla's sowie in meinem vorschlag wird dies gecheckt! bei mir rührt er files it der endung .tif nicht an, bei bastla werden nur files mit dem anfang "PRINT." berücksichtigt!

gruss tacker
Bitte warten ..
Mitglied: highpriest
17.05.2008 um 21:47 Uhr
Ich danke Euch beiden!!!
Dann kann es nichts mehr schief gehen.
Ihr habt nicht nur das gelöst, was ich mir vorgestellt habe, sondern auch ein Stück weitergedacht!
Ich kann nicht mehr erwarten es am Montag zu testen!
Ich berichte meine Ergebnise später.
Viele Grüße!
highpriest
Bitte warten ..
Mitglied: bastla
17.05.2008 um 23:15 Uhr
Hallo highpriest!

Dann kann es nichts mehr schief gehen.
Hoffen wir mal das Beste ...

Zumindest ein Detail wäre aber noch zu klären: Bei meinem Ansatz wird die nächste zu vergebende Laufnummer aufgrund der im Ordner bereits vorhandenen nummerierten Dateien ermittelt. Falls diese nun alle verschoben worden sein sollten, würde wieder bei "0001" (die Anzahl der Nullen/Stellen kannst Du selbst wählen) begonnen - daher nochmals die Bitte um eine Erläuterung des weiteren Ablaufs (nach dem Umbenennen) ...

Sollten tatsächlich regelmäßig alle nummerierten Dateien aus dem Ordner entfern werden, könnte ergänzend die jeweils höchste bereits verwendete Laufnummer in einer (.ini-) Datei hinterlegt und bei der Vergabe der nächsten Nummer berücksichtigt werden (oder gleich die bisher vorgesehene Ermittlung auf Basis der vorhandenen Dateien ersetzen).

[Edit] Ach ja: Gibt es im Ordner außer den "SCAN*.tif"-Dateien noch weitere Dateien? Wenn ja, nach welchen Konventionen sind diese benannt? (In der aktuellen Scriptfassung werden nämlich die umbenannten Dateien nur sehr oberflächlich anhand des enthaltenen "_" identifiziert - hier werde ich auf jeden Fall noch nachbessern.) [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: bastla
18.05.2008 um 10:55 Uhr
Hallo highpriest!

Wie versprochen eine robustere Version:
01.
Const Folder = "C:\Dokumente" 
02.
Const iniName = "High.ini" 
03.
ini = Folder & "\" & iniName 
04.
 
05.
OldName = UCase("PRINT.") 'zur Erkennung der Originaldateien 
06.
 
07.
Const NewName = "PRINT" 
08.
Const NewExtension = ".tif" 
09.
Const Digits = 4 'Stellenanzahl der laufenden Nummer 
10.
 
11.
Set RegEx = New RegExp 
12.
RegEx.Pattern = "^" & NewName & "\d{8}_\d{" & CStr(Digits) & "}" & NewExtension & "$" 'Dateimuster: PRINT########_####.tif 
13.
 
14.
Const adVarChar = 200 
15.
Set DataList = CreateObject("ADOR.Recordset") 
16.
DataList.Fields.Append "FileName", adVarChar, 255 
17.
DataList.Fields.Append "FileDate", adVarChar, 20 
18.
DataList.Open 
19.
 
20.
OldNameLen = Len(OldName) 
21.
MaxNo = String(Digits, "0") 
22.
 
23.
Set fso = CreateObject("Scripting.FileSystemObject") 
24.
For Each File In fso.GetFolder(Folder).Files 
25.
	FN = File.Name 
26.
	If UCase(Left(FN, OldNameLen)) = OldName Then 
27.
		DataList.AddNew 
28.
		DataList("FileName") = FN 
29.
		FileDate = CStr(File.DateLastModified) 
30.
		DataList("FileDate") = Mid(FileDate, 7, 4) & Mid(FileDate, 4, 2) & Mid(FileDate, 1, 2) & Mid(FileDate, 11) 'JJJJMMTT hh:mm:ss 
31.
		DataList.Update 
32.
	ElseIf RegEx.Test(FN) Then 
33.
		P1 = InStrRev(FN, "_") + 1 
34.
		P2 = InStrRev(FN, ".") 
35.
		If P2 > P1 Then 
36.
			CurrNo = Mid(FN, P1, P2 - P1) 
37.
			If Len(CurrNo) = Digits Then If CurrNo > MaxNo Then MaxNo = CurrNo 
38.
		End If 
39.
	End If 
40.
Next 
41.
 
42.
MaxNoVal = CLng(MaxNo) 
43.
 
44.
If fso.FileExists(ini) Then 
45.
	HighNo = CLng(fso.OpenTextFile(ini).ReadLine) 
46.
	If HighNo > MaxNoVal Then MaxNoVal = HighNo 
47.
End If 
48.
 
49.
No = MaxNoVal + 1 
50.
 
51.
If Not DataList.EOF Then 
52.
	DataList.Sort = "FileDate" 
53.
	DataList.MoveFirst 
54.
	Do Until DataList.EOF 
55.
		File = Folder & "\" & DataList.Fields.Item("FileName") 
56.
		NewDate = Left(DataList.Fields.Item("FileDate"), 8) 
57.
		NewNo = Right(String(Digits, "0") & CStr(No), Digits) 
58.
		fso.GetFile(File).Name = NewName & NewDate & "_" & NewNo & NewExtension 
59.
		fso.CreateTextFile(ini, True).Write CStr(No) 
60.
		No = No + 1 
61.
	DataList.MoveNext 
62.
	Loop 
63.
End If
Die hier zusätzlich verwendete ".ini"-Datei ist nur eine ganz gewöhnliche Textdatei, in welcher die zuletzt verwendete Nummer zwischengespeichert wird.

Grüße
bastla
Bitte warten ..
Mitglied: highpriest
18.05.2008 um 20:03 Uhr
Hallo, bastla!

Ach ja: Gibt es im Ordner außer den "SCAN*.tif"-Dateien noch weitere Dateien?

Im Ordner liegen nur die zwei Dateitypen, also SCAN*.tif und die PRINT.***

Falls diese nun alle verschoben worden sein sollten, würde wieder bei "0001" (die Anzahl der Nullen/Stellen kannst Du selbst wählen) begonnen - daher nochmals die Bitte um eine Erläuterung des weiteren Ablaufs (nach dem Umbenennen)

Nach dem Umbenennen werden die Dateien ins Archivsystem importiert und aus dem Ordner wieder gelöscht. Ich kann nocht nicht sagen, ob die tif's nach dem Import im Archiv noch mal umbenannt werden und wenn ja nach welchem Muster (das muß ich noch prüfen). Jede gescannte, gedruckte tif-Datei wird verschlagwortet und bekommt im Archiv einen Bezug auf die Datei. Wenn die Dateien unverändert bleiben, darf der Dateiname natürlich nicht noch mal wiederholen. Deshalb denke ich, das mit INI-Datei ist die sicherste Variante. Wie gesagt, das alles muß ich morgen prüfen und dann testen.
Ich danke Dir sehr für deine Mühe!
Der Montag kann beginnen!
Gruß!
highpriest
Bitte warten ..
Mitglied: highpriest
19.05.2008 um 12:04 Uhr
Hallo, bastla!
Der Script mit INI-Datei läuft sehr gut.
Ich habe aber heute festgestellt, dass der TIF-Drucker im Verzeichnis eine LOG-Datei "PRINT.LOG" ersellt, die ich nicht deaktivieren kann. Der Script umbenennt die LOG natürlich auch mit. Kannst du noch die Abfrage einbauen, dass die "PRINT.LOG" nicht umbenannt wird? Ich kriege es nicht hin.
Danke im Voraus!
highpriest
Bitte warten ..
Mitglied: bastla
19.05.2008 um 12:53 Uhr
Hallo highpriest!

Sollte dann etwa so aussehen:
01.
Const Folder = "C:\Dokumente" 
02.
Const iniName = "High.ini" 
03.
ini = Folder & "\" & iniName 
04.
 
05.
OldName = UCase("PRINT.") 'zur Erkennung der Originaldateien 
06.
ToIgnore = UCase("PRINT.LOG") 
07.
 
08.
Const NewName = "PRINT" 
09.
Const NewExtension = ".tif" 
10.
Const Digits = 4 'Stellenanzahl der laufenden Nummer 
11.
 
12.
Set RegEx = New RegExp 
13.
RegEx.Pattern = "^" & NewName & "\d{8}_\d{" & CStr(Digits) & "}" & NewExtension & "$" 'Dateimuster: PRINT########_####.tif 
14.
 
15.
Const adVarChar = 200 
16.
Set DataList = CreateObject("ADOR.Recordset") 
17.
DataList.Fields.Append "FileName", adVarChar, 255 
18.
DataList.Fields.Append "FileDate", adVarChar, 20 
19.
DataList.Open 
20.
 
21.
OldNameLen = Len(OldName) 
22.
MaxNo = String(Digits, "0") 
23.
 
24.
Set fso = CreateObject("Scripting.FileSystemObject") 
25.
For Each File In fso.GetFolder(Folder).Files 
26.
	FN = File.Name 
27.
	If UCase(FN) <> ToIgnore Then 
28.
		If UCase(Left(FN, OldNameLen)) = OldName Then 
29.
			DataList.AddNew 
30.
			DataList("FileName") = FN 
31.
			FileDate = CStr(File.DateLastModified) 
32.
			DataList("FileDate") = Mid(FileDate, 7, 4) & Mid(FileDate, 4, 2) & Mid(FileDate, 1, 2) & Mid(FileDate, 11) 'JJJJMMTT hh:mm:ss 
33.
			DataList.Update 
34.
		ElseIf RegEx.Test(FN) Then 
35.
			P1 = InStrRev(FN, "_") + 1 
36.
			P2 = InStrRev(FN, ".") 
37.
			If P2 > P1 Then 
38.
				CurrNo = Mid(FN, P1, P2 - P1) 
39.
				If Len(CurrNo) = Digits Then If CurrNo > MaxNo Then MaxNo = CurrNo 
40.
			End If 
41.
		End If 
42.
	End If 
43.
Next 
44.
 
45.
MaxNoVal = CLng(MaxNo) 
46.
 
47.
If fso.FileExists(ini) Then 
48.
	HighNo = CLng(fso.OpenTextFile(ini).ReadLine) 
49.
	If HighNo > MaxNoVal Then MaxNoVal = HighNo 
50.
End If 
51.
 
52.
No = MaxNoVal + 1 
53.
 
54.
If Not DataList.EOF Then 
55.
	DataList.Sort = "FileDate" 
56.
	DataList.MoveFirst 
57.
	Do Until DataList.EOF 
58.
		File = Folder & "\" & DataList.Fields.Item("FileName") 
59.
		NewDate = Left(DataList.Fields.Item("FileDate"), 8) 
60.
		NewNo = Right(String(Digits, "0") & CStr(No), Digits) 
61.
		fso.GetFile(File).Name = NewName & NewDate & "_" & NewNo & NewExtension 
62.
		fso.CreateTextFile(ini, True).Write CStr(No) 
63.
		No = No + 1 
64.
	DataList.MoveNext 
65.
	Loop 
66.
End If
Grüße
bastla
Bitte warten ..
Mitglied: highpriest
19.05.2008 um 13:40 Uhr
Hallo, bastla!
Ich Danke Dir für die schnelle Reaktion!
Klasse Arbeit von Dir, jetz läuft alles wie geplannt!
Du hast mich gerade glücklich gemacht!!!
Vielen Dank!
Gruß
highpriest
Bitte warten ..
Mitglied: o0Julia0o
14.02.2015 um 19:27 Uhr
hi, ich kenne mich ein wenig mit Batch-Dateien aus, aber gar nicht mit VBS. Aber etwas ganz ähnliches, jedoch mit relativem Pfad ermöglichen. Ich möchte aber mit VBS eine Datei temporär umbenennen ohne Pfadangabe. Also relativ zur vbs-Datei.

Ordner\Umbenenn.vbs
Odrner\Datei.txt

Wenn ich die Umbenenn.vbs starte, soll wenn die Datei.txt vorhanden ist, diese in Datei.sic umbenannt werden. 2 Bedingungen sollten gelten:
1. Wenn die Datei.txt nicht vorhanden ist, soll nichts gemacht werden
2. Wenn die Datei.sic schon vorhanden ist, braucht auch nix gemacht zu werden

In einer 2. VBS(Rueck.vbs) soll dann quasie das Gegenteil geschehen, aber nur fast:
Wenn die Datei.sic vorhanden ist, soll sie in Datei.txt umbenannt werden. 1 Bedingung soll gelten:
1. wenn die Datei.txt bereits vorhanden ist, soll die Datei.sic gelöscht werden

Man sieht doch dann kein Fenster mit Informationen, ob das geschen ist oder nicht? Das soll nämlich auch nicht sein, sondern alles unsichtbar ohne Nachfragen ablaufen ohne zu stören.

geht das auch?
Bitte warten ..
Mitglied: Dani
14.02.2015 um 19:48 Uhr
Hallo Julia,
bitte mach einen neuen Beitrag für deine Frage auf. Alte Themen auszugraben ist bei uns nicht gern gesehen.


Gruß,
Dani
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch: .rar-Pakete automatisch Ordner erstellen und verschieben (2)

Frage von BowserMD zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen umschreiben batch (5)

Frage von jocheng zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien automatisch anhand von 2 komplizierten Dateinamen-Strings verschieben (3)

Frage von cleverm zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...