Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem CMD - problém s názvem adresáře

Zdravím,

Pokouším se vytvořit dávkový soubor (bat), který by zkopírovat do cílového adresáře pár souborů. Mám problém s cestou do cílového adresáře jelikož je v cestě vždy složka která se na každém PC jmenuje jinak. např. C:\Program Files\test\XYZ. Na druhém PC se složka jmenuje jinak např. C:\Program Files\test\ABC. Potřeboval bych tedy něco jako zástupný znak * pro složku. Zkoušel jsem snad vše, prolétl jsem celý google ale nic jsem nenašel. Jediné řešení co mě napadá je udělat výpis adresáře a uložit si název so souboru a pak ho načíst. Nějak takto: dir C:\Program Files\test\ > nazev.txt a pak ho načíst.

Existuje něco jednoduššího? Má někdo nějaký nápad?
Díky

Předmět Autor Datum
copy zdroj "C:\Program Files\test\%1" Název složky pak dodáš jako parametr.
Wikan 05.03.2013 19:11
Wikan
něco v tomto duchu? xcopy D:\odsud\*.* C:\Program Files\test\XYZ xcopy D:\odsud\*.* C:\Program Files…
paul 05.03.2013 19:12
paul
mozes pouzit prikaz for tuto adresare maze http://blogs.msdn.com/b/oldnewthing/archive/2008/0 4/17/…
MM.. 05.03.2013 19:17
MM..
Máš v tom nejaky gulas nie? Ak sa cielova slozka (tam kde sa to ma skopirovat) taka, ze je vsade ina…
Unlimited1269 05.03.2013 20:49
Unlimited1269
Asi by som to riešil podmienkou: IF EXIST C:\Program Files\test\XYZ GOTO XYZ Copy to ABC :XYZ Copy…
pme 05.03.2013 20:55
pme
echo Current dir = %CD% echo Script dir = %~dp0 echo Batch path = %0
Jan Fiala 05.03.2013 21:35
Jan Fiala
se mi zdá, že si nějak zjednodušuješ život. myslíš doufám na to, že různé systémy mají různý název "…
lední brtník 05.03.2013 23:21
lední brtník
Pokud je ve složce test vždy jen jedna složka lze její název uložit do proměnné: for /f "delims=" %…
wert 06.03.2013 00:37
wert
tak jest. Takto se řeší např. skriptování uživatelských profilů Firefoxu a Thunderbirdu. poslední
touchwood 06.03.2013 10:25
touchwood

mozes pouzit prikaz for

tuto adresare maze http://blogs.msdn.com/b/oldnewthing/archive/2008/0 4/17/8399914.aspx prikazom rd, ty ich samozrejme nebudes mazat ale pouzijes tu premennu %%d na co chces (ako cestu pre kopirovanie). Ale bude to robit pre vsetky zlozky samozrejme, to si asi potom budes muset osetrit v tom cykle nejak, neviem jak :)

BTW. nesnazis sa urobit nahodou vir? ptz to budes mat tazke, Vista a vyssie nedovoluju zapisovat do program files bez admin prav :-P

Máš v tom nejaky gulas nie? Ak sa cielova slozka (tam kde sa to ma skopirovat) taka, ze je vsade ina tak tam nemozes pouzit aj keby isel prestupny znak, pretoze to nebude vediet do ktoreho to ma skopirovat, este u zdroju by sa to dalo lebo vtedy by to mohlo hladat ten subor v priecinkoch

Ak chces, mozes to spravit tak ze sa ta to opyta na nazov tej zlozky. V praxi by to takto vyzeralo:

set /P "source=Zadaj PRESNU cestu suboru na skopirovanie>"
set /P "target=Zadaj ciel (nazov priecinku v C:\Program Files\Test)>"
copy "%source%" "%target%"

tieto 3 riadky si tam daj aj viac krat ak chces aby sa ta to viackrat opytalo

Pokud je ve složce test vždy jen jedna složka lze její název uložit do proměnné:

for /f "delims=" %a in ('dir /b /d "%programfiles%\test"') do @set slozka=%a

Cesta cíle při kopírování ja pak tato:

"%programfiles%\test\%slozka%"

EDIT: parametr %a by v cmd skritpu měl být %%a

Zpět do poradny Odpovědět na původní otázku Nahoru