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

VBS zur Datei Umbennenung und Entfernen von diverse Character

Frage Entwicklung Batch & Shell

Mitglied: Braltar

Braltar (Level 1) - Jetzt verbinden

31.08.2006, aktualisiert 19:02 Uhr, 7679 Aufrufe, 8 Kommentare

VBS zur Datei Umbennenung und Entfernen von diverse Character

Hallo,

zuerst Mal... ich bin zeimlich Neuling in VBS.. das Erklärt warscheinlich auch die Frage.

ich habe ein Script die Dateien Aufgrund Erstelldatum umbennent, und numeriert.
Bisher funktioniert dieser auch einwandfrei. nur folgende weitere Funktionen habe ich leider nicht erfolgreich implementieren können.
(sollte unbedingt per VBS gelöst werden, also kein rename Tool...)

Die Dateinamen sehen nach ersten Ablauf so aus...

YYYYMMDDXX-ZZ.JPG also z.B. 20060830CN-01.jpg

und sind alle im gleichen Ordner.

YYYY = Jahr , MM = Monat, DD = Tag, XX = Kürzel ( als Variable von einem Input Box) und ZZ = ist die Nummerierung.


Nun sollte ich

1: die zwei erste nummer des Jahres entfernen

Ergebnis Beispiel Datei:

YYMMDDXX-ZZ.JPG also z.B. 060830CN-01.jpg



2: der - entfernen

Ergebnis Beispiel Datei:

YYMMDDXXZZ.JPG also z.B. 060830CN01.jpg


also in Kurze:

gibt es ein MusterBatch für gewisse Positionen von Dateinamen durch andere (in diesem Fall Leere Zeichen) zu ersetzen?

Vielen Dank im Voraus,
Braltar
Mitglied: AndreasHoster
31.08.2006 um 13:08 Uhr
Als vbs Skribt würde ich das so machen:

Set fso = CreateObject("Scripting.FileSystemObject")
' Verzeichnis holen
Set ofolder = fso.GetFolder("Pfad zu Verzeichnis")
' Alle Dateien im Verzeichnis durchgehen
For each file in ofolder.Files
'Name holen
sName = file.Name
'ersten 2 Buchstaben entfernen
sName = Mid(sName,3)
' - durch nichts ersetzen
sName = Replace(sName,"-","")
'Name wieder zurückschreiben
file.name = sName
Next
Bitte warten ..
Mitglied: Biber
31.08.2006 um 13:25 Uhr
Moin Braltar,

Beispiel:
01.
'fnametest.vbs 
02.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
03.
set of =objFSO.GetFile("2006-08-30xy.txt") 
04.
wscript.echo "Filename old [" & of.name & "] rename to --> [" & Mid( of.name ,3) & "]" 
05.
of.name = Mid( of.name ,3) 
06.
wscript.echo "Filename now[" & of.name & "]" 
07.
wscript.echo "Filename old [" & of.name & "] rename to --> [" & Replace( of.name ,"-","") & "]" 
08.
of.name = Replace( of.name ,"-","")
Test am CMD-Prompt:
01.
>cscript //nologo fnametest.vbs 
02.
Filename old [2006-08-30xy.txt] rename to --> [06-08-30xy.txt] 
03.
Filename now[06-08-30xy.txt] 
04.
Filename old [06-08-30xy.txt] rename to --> [060830xy.txt]
HTH Biber
[Edit] Upps, sorry, AndreasHoster.... das war über Kreuz gepostet [/Edit]
Bitte warten ..
Mitglied: Braltar
31.08.2006 um 15:55 Uhr
Vielen Dank!

genau das habe ich gemeint...

jetzt noch eine "kleine" Frage,

ich möchte noch folgendes tun.

abfragen ob an eine gewisse Position ein Punkt vorhanden ist, wenn ja ein 0 an ein gewisse Position reinschreiben...

also etwas in der Art:

If (von links gezählt an position 8 ein "." vorhanden ist) then
schreib ein "0" an Position 7
else
End If

eine Idee?
Bitte warten ..
Mitglied: AndreasHoster
31.08.2006 um 16:38 Uhr
Willst Du jetzt das Zeichen an Position 7 durch 0 ersetzen, oder soll an Position 7 eine 0 hinzugefügt werden, also das bisherige 7te Zeichen an die 8. Position rücken?
Bitte warten ..
Mitglied: Biber
31.08.2006 um 16:41 Uhr
Beispiel dafür:
01.
Text ="datei27.3.2005-txt" 
02.
wscript.echo text & " Pos. von [.]=" & Instr(text, ".") _  
03.
                &  " Pos. von [3]="   & Instr( text, "3") _  
04.
                &  " Pos. von [-]="   & Instr(text, "-") 
05.
 
06.
If mid(text,8,1) = "." then wscript.echo "Ersetzen: " & mid(text,1,7) &"0" & mid(text,9) 
07.
If mid(text,8,1) = "." then wscript.echo "Einfügen: " & mid(text,1,8) &"0" & mid(text,9) 
08.
 
09.
wscript.quit 
10.
'OUTPUT: datei27.3.2005-txt Pos. von [.]=8 Pos. von [3]=9 Pos. von [-]=15 
11.
'OUTPUT: Ersetzen: datei2703.2005-txt 
12.
'OUTPUT: Einfügen: datei27.03.2005-txt
Bitte warten ..
Mitglied: Braltar
31.08.2006 um 17:00 Uhr
danke Andreas,

also inder Folge

If Position X auswerten, und im Fall ein gewisser Zeichen Vorhanden ist

then Zeichen an Position Y einfügen, andere Zeichen nach rechts schieben...

wenn nicht vorhanden, namen unbeachtet lassen...

Beispiel

ich habe 2 Dateinamen:

123456-1.jpg und 123456-11.jpg

(weil die automatische numerierung nicht immer 2 nummer einsetz (von 1 bis 9) habe ich verschiedene namens-länge) ein detail, aber ich mag details...

darum habe ich gedacht, der . in nur auf Position 8, wenn die Nummerierung nur ein zeichen hat, und ich kann dann (an Position 6 z.Beispiel) ein 0 hinzufügen....

ich hoffe ich kläre mehr durch antworten als ich durcheinander bringe...

vielen Dank.
Bitte warten ..
Mitglied: AndreasHoster
31.08.2006 um 17:14 Uhr
Im Prinzip wie von Biber vorgeschlagen, nur beim 2. mid ab Stelle 8, da wir hinzufügen, nicht ersetzen wollen:

if mid(sName,8,1) = "." then
sName = mid(sName,1,7) & "0" & mid(sName,8)
end if

Und das einfach vor dem Namen zurückschreiben in meinem Skript einfügen.
Bitte warten ..
Mitglied: Braltar
31.08.2006 um 19:02 Uhr
vielen vielen dank....

Der Projekt kann jetzt in letzer Schleif gehen...

alles funktionniert wie geplant, und ich weiss jeztz wo ich wirklich hilfe bekomme

gruss,
braltar
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

VB for Applications
VBS oder Batch um eine Datei in Unterordner zu verschieben (1)

Frage von MrRoyal zum Thema VB for Applications ...

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

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...