Šta je novo?

Command Prompt: brisanje vise pod-foldera sa istim imenom - unutar foldera

Boyce

Čuven
Učlanjen(a)
14.02.2004
Poruke
1,859
Poena
649
Pozdrav,

Zelim da obrisem sve pod-foldere sa odredjenim imenom (u pitanju je samo jedno ime __history) unutar foldera i to rekurzivno.

Pokusavao sam sa rd tj. rmdir, ali nisam uspeo. Izgleda da ne mogu da koristim wildcards unutar te komande.

Vidim da se pominje po webu i robocopy ali ono je neko cudo od komande, pa ako neko vec ima spremljenu komandu, neka posalje.

Imam delphi izvorni kod koji u svakom pod-folderu je stvorio __histori (hidden) pod-folder, a zelim da isporucujem taj kod bez tih foldera.

Hvala puno.
 
"del" komanda moze da brise podfoldere sa wildcards, ali bih ti pre preporucio "for" petlju:
FOR /D /R <ROOT_FOLDER_PATH> %i in (_history) do rd /s %i
Mozes i prvo da uradis:
FOR /D /R <ROOT_FOLDER_PATH> %i in (_history) do echo %i
da ti odstampa sve foldere koje bi pronasao da proveris da nema greske u komandi (pogresna putanja i sl.

Primer:
for /d /r c:\projects\Delphi\MyProjects %i in (_History) do rd /s %i
Pitace te pre brisanje svakog foldera i fajlova u njemu.
Ako pokreces iz batch fajla, zameni %i sa %%i.
 
Hvala!

Izgleda da ima nekih problema sa brisanjem foldera koji imaju imena sa razmakom. Stampa sve ok, ali kada dodje do brisanja pita me za folder (naveden samo do prvog space-a), a onda izbaci da ne moze da obrise.

Da li mozda ovo moze da se resi?
 
Stavi navodnike oko "%i" - ovo će rešiti problem sa folderima koji imaju space u nazivu.
 
Da, mea culpa:
for /d /r c:\projects\Delphi\MyProjects %i in (_History) do rd /s "%i"
 
Hvala puno, to je to. Stavio sam ga quiet kad sam testirao malo.

PS. zasto je potrebno staviti 2x znak % ako ide unutar bat fajla? Cisto da znam za ubuduce.
 
Ne znam tacan razlog za to, ali jednostavno DOS to tako radi.

BTW, prijatno sam se iznenadio kada sam shvatio da je MS u novijim verzijama Windows-a prilicno unapredio command line interface i dodao dosta novih komandi.
 
Ova skripta bi trebala da radi i pod TC-om kao dugme, zar ne?

Mada moze i rucno iz explorera da se odradi preko search-a.
 
Sa robocopy komandom mozes da iskopiras sadrzaj celog projekta bez tih _history podfoldera (na dest npr. d: )

Kod:
robocopy.exe "c:\projects\Delphi\MyProjects" "d:" /e /xd "_history"

@rafiki
A tek PowerShell ;)
 
Meni treba komanda (ubih se trazeci) da prekopiram odredjene fajlove iz jednog ili vise direktorijuma, u drugih vise direktorijuma ciji naziv je slican ili isti nazivu tih fajlova.

Npr: face.jpg je u folderu C:\User\Pictures\. Na lokaciji C:\Data\ se nalazi podfolder face (C:\Data\face\). Zelim da tamo kopira. Pored face tu je avatar.jpg, user.jpg etc. a odgovarajuci folderi se nalaze u C:\Data\
 
PS. zasto je potrebno staviti 2x znak % ako ide unutar bat fajla? Cisto da znam za ubuduce.
Zato sto se % koristi za varijable samog komandnog prompta, a ukoliko batch file pravi svoje varijable, onda koristi %%. Nesto kao \\ u C/C++ da bi se napisala samo jedna \ u stringu.

Meni treba komanda (ubih se trazeci) da prekopiram odredjene fajlove iz jednog ili vise direktorijuma, u drugih vise direktorijuma ciji naziv je slican ili isti nazivu tih fajlova.

Npr: face.jpg je u folderu C:\User\Pictures\. Na lokaciji C:\Data\ se nalazi podfolder face (C:\Data\face\). Zelim da tamo kopira. Pored face tu je avatar.jpg, user.jpg etc. a odgovarajuci folderi se nalaze u C:\Data\

Ujh... ovo nije naivno :) Mozes ovo sa FOR petljom da uradis ali licno ne mogu ceo projekat da uradim, jer treba vremena.

Od ovoga bih posao:
for /R C:\User\Pictures %i in (*.*) do (
if exist "C:\Data\%~ni" do copy "%i" "C:\Data\%~ni\%~nxi"
)
Ovo za svaki file x.jpg u C:\User\Pictures proverava da li postoji C:\Data\x i ako postoji kopira x.jpg u c:\data\x\x.jpg

Ovo je otprilike komanda, nisam isprobao da li radi i da li je validna uopste, ali malo izmena treba sigurno (ako sam dobro shvatio sta ti treba)
 
Vrh Dno