Jump to content
Melde dich an, um diesen Inhalt zu abonnieren  
plastikjoe

Batch Ordner erstellen aus Dateinamen ohne Dateiendung

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Ohne Code posten zu wollen, Du mußt von Links bis zum ersten _ zählen, +1 und das ist deine neue Länge des Dateinamen.

bearbeitet von Sunny61

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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!

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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
Melde dich an, um diesen Inhalt zu abonnieren  

×