Stránka 1 z 1

Malej .bat soubor.

Napsal: 06 úno 2024, 11:04
od adam2024
Zdravím!

Mám složku, a v ní další složky... jedna má název A01, druhá A02 .... až A66.

Potřebuju .bat, který mi odmaže všechny složky, kromě složek A02, A04, A55 a A60.

Jak by asi mohl vypadat?

Napsal: 06 úno 2024, 13:00
od serviceman
Není jednodušší požadované složky přesunout a pak smazat nadřazený folder?

Napsal: 06 úno 2024, 13:47
od adam2024
Když jich máš asi 200 tak ne...

Napsal: 06 úno 2024, 13:57
od forbidden
Spíš bych na to šel přes PowerShell.
Sám s ním z hlavy moc neumím, ale na netu se vždycky dá dohledat mraky příkladů, který si zrovna pro konkrétní pokus nastuduju a upravím podle sebe.

Napsal: 06 úno 2024, 14:12
od petrfilipi
Třeba tady.

Jinak není problém to udělat v excelu tak, že do sloupce A si do řádku 1-n vložíš příkaz rmdir (vložíš ho jednou a natáhneš si ho kam potřebuješ), do sloupce B mezeru, do sloupce C cestu k adresáři a do sloupce D název adresáře ke smazání. Můžeš využít automatické číslování excelu. Poslední sloupec pak bude sloučení jednotlivých sloupců. Pak si vyexportuješ poslední sloupec do CSV a tím získáš bat soubor s příkazy ke smazání adresářů.

PF

Napsal: 06 úno 2024, 14:12
od felixbejk
adam2024 píše:Když jich máš asi 200 tak ne...


O jakých 200 píšeš ? , před tím jsi psal o 4 (A02, A04, A55 a A60)

Napsal: 06 úno 2024, 14:23
od kejki
200 složek, ne položek v nich.

Napsal: 06 úno 2024, 14:28
od bu2520
Napadá mě třeba v total comaderu vyhledat ve složce soubory s příponou bat . nechat všechny označit , pad odznačit ty potřebné a zbytek vymazat.

Napsal: 06 úno 2024, 14:33
od forbidden
No já předpokládám, že to chce dělat opakovaně a automaticky. Jinak by vytváření jakýhokoliv scriptu nemělo smysl.

Napsal: 06 úno 2024, 17:59
od josef_novak

Kód: Vybrat vše

@echo off & cd /d D:\Folders || goto :eOf 

for /f ^delims^= %%i in =;('@dir /ogn /b /s /a:d
    ')do =;( type "%~f0" | 1>nul find /i "%%~fi"
           );= || 1>nul 2>&1 rmdir /q /s "%%~fi"

goto :eof

:: Keep directory

D:\Folders\A02
D:\Folders\A04
D:\Folders\A55
D:\Folders\A60

Napsal: 07 úno 2024, 10:52
od asdf
Mně funguje tohle:

Kód: Vybrat vše

@echo off
ren slozka\A02 A02.nechat 2>nul
ren slozka\A04 A04.nechat 2>nul
ren slozka\A55 A55.nechat 2>nul
ren slozka\A60 A60.nechat 2>nul
for /D %%f in (slozka\A??) do rmdir /Q /S %%f
ren slozka\A02.nechat A02 2>nul
ren slozka\A04.nechat A04 2>nul
ren slozka\A55.nechat A55 2>nul
ren slozka\A60.nechat A60 2>nul

Napsal: 07 úno 2024, 22:23
od judeware
Napadlo mě něco podobného s tím rozdílem, že (jsa konzervativec a zastánce co nejširší kompatibility) bych to psal jako ".BAT pro DOS a výše", tj. vše velkými, pomocnou extenzi jen se třemi písmeny (např. "A02.NMZ") :) a přesměrování výstupu do NULu bych tam nedával.

Napsal: 08 úno 2024, 08:22
od asdf
To máš pravdu, to vlastně nevíme, jestli to má být pro DOS nebo Windows.