Jump to content

Batch Ordner erstellen aus Dateinamen ohne Dateiendung


Direkt zur Lösung Gelöst von plastikjoe,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Zusammen,

 

ich habe ein kleines Problem und komme nicht weiter.

 

Ein Ordner enthält unzählige zip Dateien mit dieser Syntax : alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip

 

Jetzt muss ich Oderner erstellen, in die wiederrum die zip Dateien gemovet werden sollen.

Die Ordner müssen aber so sein: alf_hugo_eva_o_o_o_b1_8_00_x12_erste .

 

Was ich bisher habe  : 

For /F %a in ('Dir /B *config.zip') Do echo md %a 

 

Ich bekomme das _config.zip nicht weg. 

 

Kann mir bitte jemand helfen.

tausend Dank

bearbeitet von plastikjoe
Link zu diesem Kommentar

Auslesen aller Dateien mit entsprechenden String:

Get-ChildItem -Filter *config.zip

 

Name:

(Get-Item .\alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip).Name

 

Stelle des letzten "_":

(Get-Item .\alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip).Name.LastIndexOf('_')
36

 

Abgeschnittener Name:

(Get-Item .\alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip).Name.Substring(0, (Get-Item .\alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip).Name.LastIndexOf('_'))

Alternativ: (Get-Item .\alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip).Name.Substring(0, 36)

 

Alles noch zusammenbauen:

foreach($file in (Get-ChildItem -Filter *_config.zip)){
   New-Item -Type Directory -Path (Get-Item $file).Name.Substring(0, (Get-Item $file).Name.LastIndexOf('_'))
}
Link zu diesem Kommentar

Hab mich mal selbst versucht. Habe es bloß nicht zusammen hinbekommen, also Ordner erstellen und anschließend moven.

Vielleicht hat ja noch jemand ein Tipp, wie ich die zusammen packe?

foreach($file in (Get-ChildItem -Filter *_config.zip)){
   New-Item -Type Directory -Path (Get-Item $file).Name.Substring(0, (Get-Item $file).Name.LastIndexOf('_'))
}

foreach($file in (Get-ChildItem -Filter *_config.zip)){
Move-Item  (Get-Item $file) -destination (Get-Item $file).Name.Substring(0, (Get-Item $file).Name.LastIndexOf('_'))
}

Vielen Dank an alle!

Link zu diesem Kommentar

Einfach das Move Item in die Foreach Schleife hinzufügen. Später schaust du dir mal die Powershell Grundlagen an.

foreach($file in (Get-ChildItem -Filter *_config.zip)){
   New-Item -Type Directory -Path (Get-Item $file).Name.Substring(0, (Get-Item $file).Name.LastIndexOf('_'))
   Move-Item  (Get-Item $file) -destination (Get-Item $file).Name.Substring(0, (Get-Item $file).Name.LastIndexOf('_'))
}
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...