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

Geschrieben (bearbeitet)

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
Geschrieben

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('_'))
}
  • Like 2
Geschrieben

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!

Geschrieben

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('_'))
}
  • Like 1
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...