Už to funguje. najednou??? - nechápu ... kromě přidání těch uvozovek v řádku
dir * /b /o:n /d > "%filename%"
jsem s tím nic nedělal
Příspěvky odeslané z IP adresy 213.235.140.–
#16 MilanL
for /f "delims=" %%A in ('cd') do (set foldername=%%~nxA) ... vrací toto: %%A nebyl nyní očekáván.
echo %cd% ... vrací toto: Data\My Albums\Benedek Elek\
echo %foldername% ... vrací toto: %foldername%
set filename=seznam_%foldername%_%date%.txt ... na dotaz: echo %filename% ... vrací toto: seznam_%foldername%_2018-02-15.txt
Mně to dá jen první slovo z celého názvu aktuálního adresáře, a není tam zakomponován datum. Ten adresář má v názvu 2 slova oddělené mezerou.
Mám to sestavené takhle (název souboru je: "seznam.bat", nakopírován do adresáře D:\Data\My Albums\Benedek Elek):
for /f "delims=" %%A in ('cd') do (
set foldername=%%~nxA
)
echo %cd%
echo %foldername%
set /P vstup=seznam
rem TADY TO MUSÍM RUČNĚ POTVRDIT. POKUD TO Z TOHO VYREMUJU, TAK TO PROBĚHNE TAKY, SE STEJNÝM VÝSLEDKEM.
set filename=seznam_%foldername%_%date%.txt
chcp 1250
dir * /b /o:n /d > %filename%
Výsledkem je soubor s názvem "seznam_Benedek.txt"
#11 MilanL
Když jsem to zkoušel na příkazovém řádku, tak mi to nic neudělalo:
echo %foldername% ... vrací toto: %%~nxA
Kam tento řetězec mám zapsat v tom BAT-u?
Kde se do toho načte %cd%?
Nemá být namísto " ('cd') " toto: (%cd%) anebo toto: %cd% ?
#7 MilanL
Nojo, ale když se ten adresář jmenuje např. "User Data" a nikoliv "UserData", tak mi to z toho vezme jen to "Data" a slovo "User" tam nebude.
Anebo naopak: pokud ty hodnoty ~0,-1 vynechám, tak veme jen "User" a slovo "Data" tam nebude.
Já chci, aby tam byl CELÝ NÁZEV aktuálního adresáře (v tomto příkladu: "User Data").
Většina mých adresářů je totiž pojmenovaných "víceslovně" - jako např. i v systému: "Program Files (x86)" .
Nechci nic testovat. Chci jen prostě vypsat aktuální obsah adresáře. Pak tyto výpisy z různých adresářů zazálohovat do jediného pracovního adresáře - ale to se právě bije, protože ty soubory mají stejný název.
Rozlišení podle času je naprt. To mi neřekne, obsah kterého adresáře daný soubor obsahuje.
Potřebuji pomocí souboru .BAT vypsat obsah do textového souboru .TXT (uloží se do aktuálního adresáře).
Chci, aby název výsledního souboru vypadal následovně:
seznam_ADR_DATUM.txt
Kde:
(a)
ADR = název aktuálního adresáře
Např. jsem-li aktuálně v adresáři (kam nakopíruji tento soubor BAT, který pak dvojklikem spustím)
C:\Users\MojeJmeno\AppData\Roaming\Microsoft\Internet Explorer\UserData
- tak, aby ADR byl jen "UserData", tj. pouze název toho adresáře jako takového.
(b)
DATUM = aktuální datum
Zatím mám toto:
rem seznam.bat: Vypis obsahu aktualniho adresare podle ABC
set filename=seznam_%date%.txt
chcp 1250
dir * /b /o:n /d > %filename%
Ovšem zde dostanu soubor ve tvaru "seznam_12-02-2018.txt".
Pokud ale udělám několik takových výpisů v ten stejný den a ty bych pak chtěl seřadit někam zvlášť (do nějaké pracovní složky), tak všechny mají stejný název...
Takže bych pro rozlišení do toho názvu souboru potřeboval nějakým způsobem ještě dostat název toho aktuálního adresáře.