Vybrat soubory ze složek
Ahoj, mám spoustu fotek ve spoustě složek, neví někdo, jak bych mohl zkopírovat všechny fotky a vložit je někam do jedné složky? Usnadnilo by mi to hodně práce. Díky
Odpovědi
Diskuze
úkol tedy zní následovně: Máme složku obsahující blíže nespecifikovaný počet rekurzivně vnořených podložek obsahujících fotografie. Cílem je všechny fotografie překopírovat, aby byly v jediné složce společně, tedy jaksi rozdrtit předchozí hierarchickou strukturu.
Tak se do toho pusťme!
Jedná se o poměrně snadný úkon, je však nutné vědět, jaký operační systém používáte, neboť na každém bude řešení jiné. Předpokládám (sprostě a bez důkazu), že jste uživatelem Windows. Musím tedy na začátek poznamenat, že já Windows nepoužívám, takže způsob, který vám poradím, možná nebude úplně nejpohodlnější. Třeba se ale ukáže nějaký uživatel Windowsu s uživatelsky příjemnější metodou.
Pro začátek si vytvořte složku, do níž budete chtít fotografie vložit. Pro jistotu si před úkonem všechny fotografie zálohujte.
Otevřete si příkazový řádek. Toho docílíte tak, že kliknete na start (nebo co to windows používá) a do vyhledávání vepíšete třípísmenný výraz "cmd". V nabídce se vám ukáže "příkazový řádek", "command line" nebo něco podobného.
Otevře se vám konzole (prostředí pravděpodobně s černým pozadím a jednoduchým fontem) očekávající příkaz. My konzoli vlastně nyní exaktně rozkážeme, co přesně chceme, aby se stalo.
Než začnete cokoliv psát, musíte zjistit úplnou cestu ke složce s fotografiemi a ke složce, do níž mají být fotografie vloženy, ty cesty budou vypadat například takto:
C:\Users\Ja\Desktop\fotografie_stare (to je cesta k původní složce s fotografiemi, jak vidíme, v tomto příkladu je na ploše)
C:\Users\Ja\Desktop\fotografie_nove (to je cesta k nové složce, do níž mají být fotografie vloženy, jak vidíme, v tomto příkladu je na ploše)
Pokud máte adresy zjištěné, napište do konzole následující (v příkazu používám příkladové adresy, nahraďte je svými):
for /R c:\Users\Ja\Desktop\fotografie_stare %t in (*) do copy "%t" c:\Users\Ja\Desktop\fotografie_nove
A poté stiskněte Enter. Pokud jste vše provedl správně, měla by se objevit informace o tom, že kopírování bylo dokončeno.
Co jsme vlastně udělali? Příkaz pomocí cyklu for iteroval rekurzivně (parametr /R) skrze všechny podsložky nacházející se ve složce c:\Users\Ja\Desktop\fotografie_stare a vybral takové soubory, které vyhovovaly regulárnímu výrazu * (což je regulární výraz, který souhlasí s každým řetězcem). Pokud byste chtěl například zkopírovat jen soubory .jpg, místo (*) byste uvedl (*.jpg). Dále máme dočasnou proměnnou %t, který bude obsahovat v každém cyklu úplnou cestu k jednomu dílčímu souboru v podsložce.
Následuje tělo cyklu, které říká, že aktuálně zpracovávaná fotografie se má zkopírovat do uvedené složky. Prosté, že? Nyní byste měl mít všechny fotografie v jedné složce. Zkuste napsat, pokud se něco pokazilo.
Mimochodem, pokud děláte na Linuxu, příkaz by vypadal třeba následovně:
cp $(find /home/Ja/Desktop/fotografie_stare -type f) /home/Ja/Desktop/fotografie_nove
https://www.ghisler.com/download.htm
a postupovat podle pokynu:
https://www.zive.cz/poradna/vyjmuti-souboru-ze-slozek-souboru-najednou/sc-20-cq-577449/default.aspx?consultanswers=1
1. Spustit Total Commander
2. Nastavit se na nejvyšší adresář (složku), kde máte ostatní podadresáře
3. Stlačit Ctrl+B (zobrazí se jen soubory bez adresářů; funguje jako přepínač = opětovným stlačním Ctrl+B uvidíte původní zobrazení s adresáři
4. Zkopírujete potřebné soubory
Další možnost: pomocí hledat typ souboru ".jpg" (pokud jde jen o fotky), viz
https://zive.aktuality.sk/forum/poradna-softver/201442/jak-dostat-soubory-ven-ze-mnoha-slozek/