Mit VBS files von rechts kürzen
Hallo zusammen
Als VBS Anfänger bräuchte ich wiedereinmal eure hilfe.
Ich möchte gerne via VBScript mehrere Dateien umbenennen bzw. kürzen. Das ganze sollte in etwa so aussehen:
Files im Ordner c:\temp\
FA1_1974629_7294878_20120207_083102067.cmd
FA1_6774629_9294508_20120207_083102665.cmd
FA1_5574629_3294508_20120207_093102667.cmd
FA1_4474629_4294508_20120207_083102630.xml
FA1_2874629_5294568_20120207_893102633.xml
FA1_1874456_6294508_20120207_663104430.xml
usw.
sollen gekürzt werden auf:
FA1_1974629_7294878.cmd
FA1_6774629_9294508.cmd
FA1_5574629_3294508.cmd
FA1_4474629_4294508.xml
FA1_2874629_5294568.xml
FA1_1874456_6294508.xml
Mit anderen Worten es sollen immer die letzte 19 Zeichen gelöscht werden.
Ich wäre sehr dankbar wenn mir jemand weiterhelfen kann.
Als VBS Anfänger bräuchte ich wiedereinmal eure hilfe.
Ich möchte gerne via VBScript mehrere Dateien umbenennen bzw. kürzen. Das ganze sollte in etwa so aussehen:
Files im Ordner c:\temp\
FA1_1974629_7294878_20120207_083102067.cmd
FA1_6774629_9294508_20120207_083102665.cmd
FA1_5574629_3294508_20120207_093102667.cmd
FA1_4474629_4294508_20120207_083102630.xml
FA1_2874629_5294568_20120207_893102633.xml
FA1_1874456_6294508_20120207_663104430.xml
usw.
sollen gekürzt werden auf:
FA1_1974629_7294878.cmd
FA1_6774629_9294508.cmd
FA1_5574629_3294508.cmd
FA1_4474629_4294508.xml
FA1_2874629_5294568.xml
FA1_1874456_6294508.xml
Mit anderen Worten es sollen immer die letzte 19 Zeichen gelöscht werden.
Ich wäre sehr dankbar wenn mir jemand weiterhelfen kann.
Please also mark the comments that contributed to the solution of the article
Content-ID: 180174
Url: https://administrator.de/forum/mit-vbs-files-von-rechts-kuerzen-180174.html
Printed on: May 12, 2025 at 07:05 o'clock
6 Comments
Latest comment
Hey,
versuchs mal in etwa so...
dim x,y as string
x=dir(ordner.....)
do until x=""
y=left(x,len(x)-23)+right(x,4)
name x as y
x=dir
loop
hat keine Fehlerbehandlung oder sonstwas und keine Garantie, daß es so 1:1 funktioniert... das Wort "ordner" muß natürlich gegen den Ordernamen mit den enthaltenen Dateien getauscht werden
Schöne Grüße
Dave
versuchs mal in etwa so...
dim x,y as string
x=dir(ordner.....)
do until x=""
y=left(x,len(x)-23)+right(x,4)
name x as y
x=dir
loop
hat keine Fehlerbehandlung oder sonstwas und keine Garantie, daß es so 1:1 funktioniert... das Wort "ordner" muß natürlich gegen den Ordernamen mit den enthaltenen Dateien getauscht werden
Schöne Grüße
Dave
Hi,
oder so:
( ich definiere es eher als die ersten 19 Zeichen stehen lassen
)
bye
Karo
oder so:
( ich definiere es eher als die ersten 19 Zeichen stehen lassen
Option Explicit
Dim strPath, FSO, FLD, fil, strOldName, strNewName
strPath = "C:\TMP"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FLD = FSO.GetFolder(strPath)
For Each fil in FLD.Files
strOldName = fil.Name
if LEN(strOldName)+4 > 23 then
strNewName = Left(strOldName,19) & Right(strOldName,4)
FSO.MoveFile strOldName, strNewName
end if
Next
bye
Karo
Hallo @all!
Unter der Annahme, dass es eigentlich darum ginge, aus den 5 durch "_" getrennten Bestandteilen des Dateinamens nur die ersten 3 zu verwenden (was zumindest die Zeichenzählerei spart), könnte das auch so gehen:
Das "
Grüße
bastla
Unter der Annahme, dass es eigentlich darum ginge, aus den 5 durch "_" getrennten Bestandteilen des Dateinamens nur die ersten 3 zu verwenden (was zumindest die Zeichenzählerei spart), könnte das auch so gehen:
Ordner = "c:\temp"
Set fso = CreateObject("Scripting.FileSystemObject")
For Each File In fso.GetFolder(Ordner).Files
FileName = fso.GetBaseName(File.Name)
FileExt = fso.GetExtensionName(File.Name)
FileParts = Split(FileName, "_")
If UBound(FileParts) > 2 Then File.Name = FileParts(0) & "_" & FileParts(1) & "_" & FileParts(2) & "." & FileExt
Next
If
" in Zeile 8 soll verhindern, dass bereits umbenannte Dateien neuerlich bearbeitet werden.Grüße
bastla