Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DOS kopiowanie pliku do folderu

777 views
Skip to first unread message

sko...@op.pl

unread,
Aug 4, 2010, 11:19:57 AM8/4/10
to
Na amen zapomnialem jak to sie robi po dos'em
Musze skopiowac plik.txt do folderu a dokładnie do:
copy plik.txt c:\Dane\*\Ksiegowosc\Magazyn
gdzie * to różne nazwy folderów. Jest ich prawie 600 sztuk.
Polecenie:
copy plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn
nic nie daje. Jak to zrobić ?

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Piotr Palusiński

unread,
Aug 4, 2010, 11:27:51 AM8/4/10
to
In news:47f6.00000e...@newsgate.onet.pl,
*Użytkownik* <sko...@op.pl> typed:

> Na amen zapomnialem jak to sie robi po dos'em
> Musze skopiowac plik.txt do folderu a dokładnie do:
> copy plik.txt c:\Dane\*\Ksiegowosc\Magazyn
> gdzie * to różne nazwy folderów. Jest ich prawie 600 sztuk.
> Polecenie:
> copy plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn
> nic nie daje. Jak to zrobić ?

Wstaw plik.txt na końcu polecenia

--
Piotr Palusiński [Microsoft MVP - Windows Desktop Experience]
https://mvp.support.microsoft.com/profile/Piotr.Palusinski
news://msnews.microsoft.com/microsoft.public.pl.windows
Nigdy nie kłóć się z głupcem, bo ludzie mogą nie dostrzec różnicy

sko...@op.pl

unread,
Aug 4, 2010, 11:34:57 AM8/4/10
to
> In news:47f6.00000e...@newsgate.onet.pl,
> *Użytkownik* <sko...@op.pl> typed:
> > Na amen zapomnialem jak to sie robi po dos'em
> > Musze skopiowac plik.txt do folderu a dokładnie do:
> > copy plik.txt c:\Dane\*\Ksiegowosc\Magazyn
> > gdzie * to różne nazwy folderów. Jest ich prawie 600 sztuk.
> > Polecenie:
> > copy plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn
> > nic nie daje. Jak to zrobić ?
>
> Wstaw plik.txt na końcu polecenia
>
> --
jęsli tak to:
copy c:\Dane\*.*\Ksiegowosc\Magazyn\ plik.txt
Składnia polecenia jest niepoprawna.

Radosław Sokół

unread,
Aug 4, 2010, 1:07:44 PM8/4/10
to
W dniu 04.08.2010 17:19, sko...@op.pl pisze:

> Musze skopiowac plik.txt do folderu a dokładnie do:
> copy plik.txt c:\Dane\*\Ksiegowosc\Magazyn
> gdzie * to różne nazwy folderów. Jest ich prawie 600 sztuk.

Jeden plik naraz do wielu folderów docelowych? Nie da się.
Musisz zrobić skrypt kopiujący zawsze po jednym pliku (do
jednego folderu docelowego).

--
|""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|
| Radosław Sokół | http://www.grush.one.pl/ |
| | Politechnika Śląska |
\........................................................../

Grzegorz Niemirowski

unread,
Aug 4, 2010, 2:13:08 PM8/4/10
to
sko...@op.pl <sko...@op.pl> napisał(a):

> Na amen zapomnialem jak to sie robi po dos'em
> Musze skopiowac plik.txt do folderu a dokładnie do:
> copy plik.txt c:\Dane\*\Ksiegowosc\Magazyn
> gdzie * to różne nazwy folderów. Jest ich prawie 600 sztuk.
> Polecenie:
> copy plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn
> nic nie daje. Jak to zrobić ?

Nie wiem jak pod DOSem ale pod Windows możesz skorzystać z pętli for:
for /d %f in (*) do copy plik.txt "c:\Dane\%f\Ksiegowosc\Magazyn"

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 1 day, 6 hours, 38 minutes and 51 seconds

Piotr Palusiński

unread,
Aug 4, 2010, 2:44:26 PM8/4/10
to


xcopy c:\Dane\Ksiegowosc\Magazyn\*.* " /e /h /k /r /c d:\archiwum\plik.txt

PS.
Cudzysłów jest potrzebny, gdy nazwa ma spacje.
np.
xcopy "c:\program files\*.*" /e /h /k /r /c "d:\archiwum\plik.txt"

Grzegorz Niemirowski

unread,
Aug 4, 2010, 2:49:21 PM8/4/10
to
Piotr Palusiński <perfe...@invalid.wp.pl> napisał(a):

> xcopy c:\Dane\Ksiegowosc\Magazyn\*.* " /e /h /k /r /c d:\archiwum\plik.txt
> PS.
> Cudzysłów jest potrzebny, gdy nazwa ma spacje.
> np.
> xcopy "c:\program files\*.*" /e /h /k /r /c "d:\archiwum\plik.txt"

Piotr, przecież to nie ma prawa działać. Nie wiem skąd pomysł żeby odwrócić
kolejność ścieżek. Pierwszym parametrem programu xcopy jest źródło a drugim
cel. My chcemy kopiować plik do katalogów.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 1 day, 7 hours, 33 minutes and 8 seconds

Piotr Palusiński

unread,
Aug 4, 2010, 3:06:05 PM8/4/10
to
In news:i3ccnb$2m9$1...@opal.icpnet.pl,
*Grzegorz Niemirowski* <gnthe...@poczta.onet.pl> typed:

> Piotr Palusiński <perfe...@invalid.wp.pl> napisał(a):
>> xcopy c:\Dane\Ksiegowosc\Magazyn\*.* " /e /h /k /r /c
>> d:\archiwum\plik.txt PS.
>> Cudzysłów jest potrzebny, gdy nazwa ma spacje.
>> np.
>> xcopy "c:\program files\*.*" /e /h /k /r /c "d:\archiwum\plik.txt"
>
> Piotr, przecież to nie ma prawa działać. Nie wiem skąd pomysł żeby
> odwrócić kolejność ścieżek. Pierwszym parametrem programu xcopy jest
> źródło a drugim cel. My chcemy kopiować plik do katalogów.

Uff, mój błąd, żle doczytałem :-(.
copy X:\plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn

Grzegorz Niemirowski

unread,
Aug 4, 2010, 3:18:13 PM8/4/10
to
Piotr Palusiński <perfe...@invalid.wp.pl> napisał(a):

> Uff, mój błąd, żle doczytałem :-(.
> copy X:\plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn

Niestety tak też się nie da, w pierwszym poście masz napisane, że tak nie
działa. Z xcopy też nie, przynajmniej moje próby z xcopy nie dały rezultatu.
Tak jak pisze Radek, zostaje tylko skrypt.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 1 day, 8 hours, 2 minutes and 14 seconds

Chopin

unread,
Aug 4, 2010, 3:20:30 PM8/4/10
to

Użytkownik "Grzegorz Niemirowski" <gnthe...@poczta.onet.pl> napisał w
wiadomości news:i3caje$11p$1...@opal.icpnet.pl...

> sko...@op.pl <sko...@op.pl> napisał(a):
>> Na amen zapomnialem jak to sie robi po dos'em
>> Musze skopiowac plik.txt do folderu a dokładnie do:
>> copy plik.txt c:\Dane\*\Ksiegowosc\Magazyn
>> gdzie * to różne nazwy folderów. Jest ich prawie 600 sztuk.
>> Polecenie:
>> copy plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn
>> nic nie daje. Jak to zrobić ?
>
> Nie wiem jak pod DOSem ale pod Windows możesz skorzystać z pętli for:
> for /d %f in (*) do copy plik.txt "c:\Dane\%f\Ksiegowosc\Magazyn"
>
Powyższe będzie działać jeżeli uruchomimy polecenie będąc w lokalizacji
"c:\Dane".
Jeżeli autor wątku będzie chciał uruchomić polecenie z innej lokalizacji,
zamiast (*) należy podać ścieżkę, gdzie znajdują się te nieokreślone 600
szt. folderów. Czyli np.:
for /D %f in (C:\Dane\*.*) do copy X\plik.txt "%f\Ksiegowosc\Magazyn" /Y

Pod X podstawić lokalizację pliku "plik.txt".

--
Chopin
"Gdynia Moje Miasto"
staw...@wUpE.pEEl

sko...@op.pl

unread,
Aug 4, 2010, 4:06:09 PM8/4/10
to
> W dniu 04.08.2010 17:19, sko...@op.pl pisze:
> > Musze skopiowac plik.txt do folderu a dokładnie do:
> > copy plik.txt c:\Dane\*\Ksiegowosc\Magazyn
> > gdzie * to różne nazwy folderów. Jest ich prawie 600 sztuk.
>
> Jeden plik naraz do wielu folderów docelowych? Nie da się.
> Musisz zrobić skrypt kopiujący zawsze po jednym pliku (do
> jednego folderu docelowego).
>
> --
Czyli musze napisac prawie 600 linijek w skrypciku ?
copy plik.txt c:\Dane\katalog123\Ksiegowosc\Magazyn
copy plik.txt c:\Dane\katalogABC\Ksiegowosc\Magazyn
copy plik.txt c:\Dane\kierownik\Ksiegowosc\Magazyn
copy plik.txt c:\Dane\dyrektor\Ksiegowosc\Magazyn

kurcze szkoda, myślałem że zadziała tak jak w unix'sie:
cp plik.txt /home/Dane/*/Ksiegowosc/Magazyn

Grzegorz Niemirowski

unread,
Aug 4, 2010, 4:16:23 PM8/4/10
to
sko...@op.pl <sko...@op.pl> napisał(a):

> Czyli musze napisac prawie 600 linijek w skrypciku ?
> copy plik.txt c:\Dane\katalog123\Ksiegowosc\Magazyn
> copy plik.txt c:\Dane\katalogABC\Ksiegowosc\Magazyn
> copy plik.txt c:\Dane\kierownik\Ksiegowosc\Magazyn
> copy plik.txt c:\Dane\dyrektor\Ksiegowosc\Magazyn
> kurcze szkoda, myślałem że zadziała tak jak w unix'sie:
> cp plik.txt /home/Dane/*/Ksiegowosc/Magazyn

Skoro znasz Uniksa to powinieneś wiedzieć, że w skryptach można korzystać z
pętli i jedna linijka może załatwić wszystko :)

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 1 day, 9 hours, 1 minutes and 49 seconds

sko...@op.pl

unread,
Aug 4, 2010, 4:21:15 PM8/4/10
to
> sko...@op.pl <sko...@op.pl> napisał(a):
> > Czyli musze napisac prawie 600 linijek w skrypciku ?
> > copy plik.txt c:\Dane\katalog123\Ksiegowosc\Magazyn
> > copy plik.txt c:\Dane\katalogABC\Ksiegowosc\Magazyn
> > copy plik.txt c:\Dane\kierownik\Ksiegowosc\Magazyn
> > copy plik.txt c:\Dane\dyrektor\Ksiegowosc\Magazyn
> > kurcze szkoda, myślałem że zadziała tak jak w unix'sie:
> > cp plik.txt /home/Dane/*/Ksiegowosc/Magazyn
>
> Skoro znasz Uniksa to powinieneś wiedzieć, że w skryptach można korzystać z
> pętli i jedna linijka może załatwić wszystko :)
>
nie znam uniksa, tylko wiem ze w nim to polecenie dziala, ale musze to samo
zrobic pod DOS'em dlatego pytam.

Grzegorz Niemirowski

unread,
Aug 4, 2010, 4:31:37 PM8/4/10
to
sko...@op.pl <sko...@op.pl> napisał(a):

> nie znam uniksa, tylko wiem ze w nim to polecenie dziala, ale musze to
> samo zrobic pod DOS'em dlatego pytam.

Pod czystym DOSem? Jak wersja? Czy może chodzi o wiersz polecenia z Windows?
Bo jak o wiersz polecenia (cmd.exe) to skrypt masz podany w tym wątku.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 1 day, 9 hours, 17 minutes and 0 seconds

skowron...@op.pl

unread,
Aug 4, 2010, 4:39:56 PM8/4/10
to
dziekuje to polecenie:

for /D %f in (C:\Dane\*.*) do copy X\plik.txt "%f\Ksiegowosc\Magazyn" /Y
działa super, ale niestety musze to wykonać pod czystym DOS'em 6.22

sko...@op.pl

unread,
Aug 4, 2010, 4:41:30 PM8/4/10
to
> sko...@op.pl <sko...@op.pl> napisał(a):
> > nie znam uniksa, tylko wiem ze w nim to polecenie dziala, ale musze to
> > samo zrobic pod DOS'em dlatego pytam.
>
> Pod czystym DOSem? Jak wersja? Czy może chodzi o wiersz polecenia z Windows?
> Bo jak o wiersz polecenia (cmd.exe) to skrypt masz podany w tym wątku.
>
niestety tak, ver. 6.22
a skrypt:

for /D %f in (C:\Dane\*.*) do copy X\plik.txt "%f\Ksiegowosc\Magazyn" /Y
działa wyśmienicie, ale nie w 6.22 :( tylko w okienku windowsa którego na tym
kompie nie ma i byc nie moze.

Grzegorz Niemirowski

unread,
Aug 4, 2010, 5:02:39 PM8/4/10
to
sko...@op.pl <sko...@op.pl> napisał(a):

> niestety tak, ver. 6.22
> a skrypt:
> for /D %f in (C:\Dane\*.*) do copy X\plik.txt "%f\Ksiegowosc\Magazyn" /Y
> działa wyśmienicie, ale nie w 6.22 :( tylko w okienku windowsa którego
> na tym kompie nie ma i byc nie moze.

Pod czystym DOSem będzie trudniej bo tam pętla for nie była tak
zaawansowana. Z tego co widzę, to leciała po plikach tylko a po katalogach
jużnie. Może jakiś dosowy wymiatacz sobie z tym łatwo poradzi ale ja nie mam
pomysłu. Trzeba chyba jednak zrobić tak jak pisałeś, zrobić wielki skrypt.
Pod DOSem można wydać polecenie:
dir /b /ad > spis.txt
które zrobi listę katalogów w pliku, z tego spisu można potem każdym trochę
bardziej zaawansowanym edytorem tekstowym albo skryptem wygenerować plik
BAT.
Niemniej jednak ciągle mam nadzieję, że ktoś pamiętający DOS 6.22 poda
jakieś sensowniejsze rozwiązanie. Może program w QBasicu, który był w DOSie
na pokładzie?

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 1 day, 9 hours, 46 minutes and 34 seconds

Andrzej P. Wozniak

unread,
Aug 4, 2010, 5:16:51 PM8/4/10
to
Osoba podpisana jako skowron...@op.pl <skowron...@op.pl>
w artykule <news:47f6.00000e...@newsgate.onet.pl> pisze:

> dziekuje to polecenie:
> for /D %f in (C:\Dane\*.*) do copy X\plik.txt "%f\Ksiegowosc\Magazyn" /Y
> działa super, ale niestety musze to wykonać pod czystym DOS'em 6.22

O Dosa powinieneś pytać grupę pl.comp.os.ms-windows.win3, a tam dostałbyś
odpowiedź:

* Zamiast command.com można użyć innego procesora poleceń, np. darmowego
4DOS.
* Można poszukać dosowych wersji linuksowych narzędzi (np. w dystrybucji
FreeDosa).
* Szybkie napisanie pliku wsadowego z wymienionymi setkami podkatalogów to
kwestia znajomości opcji polecenia dir i użycia dobrego edytora tekstowego
do edycji rezultatów wykonania tego polecenia.

Cross+FUT: pl.comp.os.ms-windows.win3

--
Andrzej P. Woźniak us...@pochta.onet.pl (zamień miejscami z<->h w adresie)

Piotr M

unread,
Aug 4, 2010, 5:39:22 PM8/4/10
to
Dnia 04-08-2010 o 19:07:44 Radosław Sokół <rso...@magsoft.com.pl>
napisał(a):

> W dniu 04.08.2010 17:19, sko...@op.pl pisze:
>> Musze skopiowac plik.txt do folderu a dokładnie do:
>> copy plik.txt c:\Dane\*\Ksiegowosc\Magazyn
>> gdzie * to różne nazwy folderów. Jest ich prawie 600 sztuk.
>
> Jeden plik naraz do wielu folderów docelowych? Nie da się.
> Musisz zrobić skrypt kopiujący zawsze po jednym pliku (do
> jednego folderu docelowego).

No właśnie tak mnie zastanowiło to, tak myślałem jak to możliwe, ale
uznałem, że po prostu kiedyś widocznie nie miałem takiej potrzeby lub nie
wiedziałem że jest taka możliwość, gwiazdkowania sobie ścieżek dostępu :)
A i nic nie napisałem bo i w sumie po co... A pomyśleć, że jeszcze
niedawno wiara w szkole podstawowej wkuwała na pamięć komendy, ciekawe
kiedy przestała :)

--
pzdr, Piotr M

"Najczęstsze kłamstwo w Internecie?
- Szukałem, ale nie znalazłem."

Michal Biek

unread,
Aug 4, 2010, 5:56:46 PM8/4/10
to
Grzegorz Niemirowski log(in):
[...]

> Niemniej jednak ciągle mam nadzieję, że ktoś pamiętający DOS 6.22 poda
> jakieś sensowniejsze rozwiązanie.
[...]

;-)
Może pomoże:
for /R C:\Dane %%I in (.) do copy "C:\plik.txt" "%%I\plik.txt"

--
MICHAL: Mechanical Intelligent Calculation
and Hazardous Assassination Lifeform
BIEK: Being Intended for Exploration
and Killing ...

Grzegorz Niemirowski

unread,
Aug 4, 2010, 6:00:59 PM8/4/10
to
Michal Biek <m...@rx.pl.invalid> napisał(a):

> ;-)
> Może pomoże:
> for /R C:\Dane %%I in (.) do copy "C:\plik.txt" "%%I\plik.txt"

W DOS 6.22 polecenie for nie obsługuje przełącznika /R, nie obsługuje
żadnych przełączników :)

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 1 day, 10 hours, 46 minutes and 36 seconds

Michal Biek

unread,
Aug 4, 2010, 6:12:55 PM8/4/10
to
Grzegorz Niemirowski log(in):

> Michal Biek <m...@rx.pl.invalid> napisał(a):
>> ;-)
>> Może pomoże:
>> for /R C:\Dane %%I in (.) do copy "C:\plik.txt" "%%I\plik.txt"
> W DOS 6.22 polecenie for nie obsługuje przełącznika /R, nie obsługuje
> żadnych przełączników :)

A co ony PC nie ma FDD, USB albo CD-Roma?
A co lepszego DOS nie można zdobyć? :-)
--
dos7x@winner!

Grzegorz Niemirowski

unread,
Aug 4, 2010, 6:55:40 PM8/4/10
to
Michal Biek <m...@rx.pl.invalid> napisał(a):

> A co ony PC nie ma FDD, USB albo CD-Roma?
> A co lepszego DOS nie można zdobyć? :-)

Jego pytaj :)

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 1 day, 11 hours, 41 minutes and 41 seconds

MAR

unread,
Aug 4, 2010, 7:13:41 PM8/4/10
to
On Wed, 04 Aug 2010 22:06:09 +0200, sko...@op.pl wrote:

> kurcze szkoda, myślałem że zadziała tak jak w unix'sie:
> cp plik.txt /home/Dane/*/Ksiegowosc/Magazyn

Pod unixem to nie zadziała.

Poza tym to nie unix wykonuje 'cp', a powłoka. Najczęściej bash.
Pod ms-dosa był port basha, ale skoro ta metoda nie zadziała nic to nie
pomoże.


--
Mar.

Piotr Palusiński

unread,
Aug 5, 2010, 1:12:43 AM8/5/10
to
In news:i3cedf$56v$1...@opal.icpnet.pl,
*Grzegorz Niemirowski* <gnthe...@poczta.onet.pl> typed:

> Piotr Palusiński <perfe...@invalid.wp.pl> napisał(a):
>> Uff, mój błąd, żle doczytałem :-(.
>> copy X:\plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn
>
> Niestety tak też się nie da, w pierwszym poście masz napisane, że tak nie
> działa. Z xcopy też nie, przynajmniej moje próby z xcopy nie dały
> rezultatu. Tak jak pisze Radek, zostaje tylko skrypt.

Powinno zadziałać, to co pamietam z DOS-a, a teraz nie mam do niego dostępu
do czystego 6.22 (sprawdze dzisiaj w pracy)
xcopy X:\plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn /E /H

robert.giedr...@poczta.onet.pl

unread,
Aug 5, 2010, 1:36:28 AM8/5/10
to
> On Wed, 04 Aug 2010 22:06:09 +0200, sko...@op.pl wrote:
>
> > kurcze szkoda, myĹ&#65533;laĹ&#65533;em Ĺźe zadziaĹ&#65533;a tak jak w unix'sie:
> > cp plik.txt /home/Dane/*/Ksiegowosc/Magazyn
>
> Pod unixem to nie zadziaĹ&#65533;a.
>
> Poza tym to nie unix wykonuje 'cp', a powĹ&#65533;oka. NajczÄ&#65533;Ĺ&#65533;ciej bash.
> Pod ms-dosa byĹ&#65533; port basha, ale skoro ta metoda nie zadziaĹ&#65533;a nic to nie
> pomoĹźe.
>
dziwnego unix'a masz, bo u mnie na linuksie i AIX'sie to polecenie działa, tak
jak autor wątku tego chce.

Mariusz Kruk

unread,
Aug 5, 2010, 2:08:03 AM8/5/10
to
epsilon$ while read LINE; do echo \>"$LINE"; done < "robert.giedr...@poczta.onet.pl"

>> > kurcze szkoda, myĹ&#65533;laĹ&#65533;em Ĺźe zadziaĹ&#65533;a tak jak w unix'sie:
>> > cp plik.txt /home/Dane/*/Ksiegowosc/Magazyn
>> Pod unixem to nie zadziaĹ&#65533;a.
>>
>> Poza tym to nie unix wykonuje 'cp', a powĹ&#65533;oka. NajczÄ&#65533;Ĺ&#65533;ciej bash.
>> Pod ms-dosa byĹ&#65533; port basha, ale skoro ta metoda nie zadziaĹ&#65533;a nic to nie
>> pomoĹźe.
>dziwnego unix'a masz, bo u mnie na linuksie i AIX'sie to polecenie działa, tak
>jak autor wątku tego chce.

Dziwnego języka polskiego używasz, bo u mnie pisze się "uniksie". Z AIX
może być już trudniej, bo właściwie nie wiadomo czy w ogóle powinno się
to odmieniać. Ale nawet jeśli, to na pewni nie należy tu używać
apostrofu.
A bardziej do rzeczy - nie ma prawa działać w żądany sposób, bo shell
rozwinie symbol wieloznaczny i będzie chciał skopiować wiele źródeł do
jednego celu.
bash:
#v+
~/test$ touch source
~/test$ mkdir dest1
~/test$ mkdir dest2
~/test$ cp source dest*
cp: omitting directory `dest1'
#v-
tcsh:
#v+
poznojuz:~/test> cp source dest*
cp: omitting directory `dest1'
#v-

--
Kruk@ -\ |
}-> epsilon.eu.org |
http:// -/ |
|

news..pl

unread,
Aug 5, 2010, 3:16:16 AM8/5/10
to
> Musze skopiowac plik.txt do folderu a dokładnie do:
> copy plik.txt c:\Dane\*\Ksiegowosc\Magazyn
> gdzie * to różne nazwy folderów. Jest ich prawie 600 sztuk.
> Polecenie:
> copy plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn
> nic nie daje. Jak to zrobić ?
>
Ostatnio miałem problem tej klasy i nie wychodziło mi pisanie skryptów,
kolega napisał programik w Clipperze i skompilował, działa w DOS, w zasadzie
w każdym języku mającym kompilator dla DOS mozna to napisać, tylko widzę
jeden problem, chyba nie działasz w DOS skoro masz katalog "Ksiegowosc",
przekraczasz 8 znaków w nazwie.
Piotr

Grzegorz Niemirowski

unread,
Aug 5, 2010, 3:39:07 AM8/5/10
to
Piotr Palusiński <perfe...@invalid.wp.pl> napisał(a):

> Powinno zadziałać, to co pamietam z DOS-a, a teraz nie mam do niego
> dostępu do czystego 6.22 (sprawdze dzisiaj w pracy)
> xcopy X:\plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn /E /H

Nie działa i nie powinno działać, choćby dlatego, że XCOPY na DOS 6.22 nie
obsługuje parametru /H. Bez niego też nie zadziała.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 1 day, 20 hours, 21 minutes and 31 seconds

Chopin

unread,
Aug 5, 2010, 9:01:29 AM8/5/10
to
W dniu 2010-08-04 22:39, skowron...@op.pl pisze:
Chcesz to robić w DOS. No tak, ale jak słusznie zauważył kolega Piotr
(news..pl), katalog "Ksiegowosc" nie mieści się w ramach modelu
nazewnictwa w DOS czyli 8+3.

--
Pozdrawiam,
Chopin
"Gdynia moje misto"

Piotr Palusiński

unread,
Aug 5, 2010, 9:13:37 AM8/5/10
to
In news:i3dpqp$1hcj$1...@opal.icpnet.pl,
*Grzegorz Niemirowski* <gnthe...@poczta.onet.pl> typed:

> Piotr Palusiński <perfe...@invalid.wp.pl> napisał(a):
>> Powinno zadziałać, to co pamietam z DOS-a, a teraz nie mam do niego
>> dostępu do czystego 6.22 (sprawdze dzisiaj w pracy)
>> xcopy X:\plik.txt c:\Dane\*.*\Ksiegowosc\Magazyn /E /H
>
> Nie działa i nie powinno działać, choćby dlatego, że XCOPY na DOS 6.22 nie
> obsługuje parametru /H. Bez niego też nie zadziała.

Nie miałem czasu na sprawdzenie.
Co do parametru /H, to jest OK.


PS. (to nie dla Ciebie Grzesiu)
Copy - sluzy zazwyczaj do kopiowania plikow (bez katalogow)
ponadto ma mozliwosc laczenia kilku plikow w jeden

Xcopy - W trybie DOS (rzeczywistym) obsługuje kopiowanie z podkatalogami,
ale tylko w trybie krótkich nazw.W trybie Windows wywołuje po prostu
xcopy32.

Xcopy32 - ma najszerszy zakres możliwości (pracuje tylko na sterowniku
VFAT): długie nazwy, podkatalogi, synchronizacja wg dat, pomijanie błędów
kopiowania (umożliwia pominięcie kopiowania swapa Windows) itp.
W trybie DOS xcopy32 po prostu wywołuje xcopy.

Aby poznac dokladnie cala skladnie danego polecenia w danej wersji DOS-u,
polecam podac komende ze znakiem zapytania np.
copy /?
xcopy /?
xcopy32 /?

A może zastosować jakiś zewnętrzny programik?.

Chopin

unread,
Aug 5, 2010, 9:23:23 AM8/5/10
to
W dniu 2010-08-04 22:39, skowron...@op.pl pisze:
>>
Zrób w dwóch krokach:
dir C:\Dane\*.* /A:D /B > C:\lista.txt
for %f in (C:\lista.txt) do copy X\plik.txt c:\Dane\%f\Ksiego~1\Magazyn /Y

X - lokalizacja pliku tekstowego

Niestety nie mam po ręką DOS'a 6.22 więc nie sprawdzę czy moja rada się
przyda.
Jedna uwaga, jeśli chcesz to wrzucić w plik *.bat to przy zmiennych
należy dać dwa znaki %, czyli będzie: %%f.

Grzegorz Niemirowski

unread,
Aug 5, 2010, 9:46:31 AM8/5/10
to
Piotr Palusiński <perfe...@invalid.wp.pl> napisał(a):

> Nie miałem czasu na sprawdzenie.
> Co do parametru /H, to jest OK.

Więc skąd wiesz, że jest OK? ;) Odpaliłem DOS 6.22 i tam xcopy nie ma
parametru /H. Wprowadzono go później, pewnie w Windows 95.

> A może zastosować jakiś zewnętrzny programik?.

Tak, ewentualnie wygenerować ten 600-linijkowy skrypt.
XCOPY samo w sobie niestety nie da rady, ani pod DOS ani pod Windows. Można
je umieścić w pętli ale FOR idący po katalogach występuje w Windows a pod
DOS 6.22 go nie ma, tzn. jest ale umie tylko iść po plikach.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 2 days, 2 hours, 27 minutes and 43 seconds

Grzegorz Niemirowski

unread,
Aug 5, 2010, 9:59:02 AM8/5/10
to
Użytkownik "Chopin" <marci...@pocztaonet.pl> napisał w wiadomości
news:i3ee0c$jod$1...@news.onet.pl...

> Zrób w dwóch krokach:
> dir C:\Dane\*.* /A:D /B > C:\lista.txt

Nawet OK ale nie ma sensu pisac *.*. Jedna gwiazda wystarcza a zapis *.*
powoduje, że do listy trafiają też niepotrzebnie katalogi . i ..

> for %f in (C:\lista.txt) do copy X\plik.txt c:\Dane\%f\Ksiego~1\Magazyn /Y

W DOS FOR nie ma możliwości analizownia zawartości pliku.

Michal Biek

unread,
Aug 5, 2010, 12:15:01 PM8/5/10
to
Grzegorz Niemirowski log(in):

> Michal Biek <m...@rx.pl.invalid> napisał(a):
>> A co ony PC nie ma FDD, USB albo CD-Roma?
>> A co lepszego DOS nie można zdobyć? :-)
> Jego pytaj :)

Ehhh...!
Dobra...! Nie ma nic z w/w.
Znajduje FDD...CD-ROM... lepszego DOSa,
a reszta to naleśniki z serem i rodzynkami :-)
PS
1 wątkujący i co poniektórzy ma(ją) chyba siakieś zaparcie na DOS 6.22.
BTW mój kot mi podpowiada, że:
- PC pracuje również w sieci
- SO to chyba Win 3.1 for Wrkgrps
A magiczna kula pokazuje mi, że inkryminowaną operację można także wykonać
po skopiowaniu folderów na inny PC np. z XP, a później zooperowanymi
nadpisać stare.
PSS
SRY, ale szkoda czasu na dyrdymały! Pa, Grzesiu!
--
DOS Show

sko...@op.pl

unread,
Aug 5, 2010, 12:39:22 PM8/5/10
to
DOS, tylko to przykładowe nazwy, nie chciałem uzywać faktycznych, aby nie
komplikowac, a katalogi te faktycznie maja nazwy krotsze, maksymalnie 5 znaków
no i sciezki troche inne. Ale idea pozostaje ta sama.

Piotr Palusiński

unread,
Aug 5, 2010, 12:42:22 PM8/5/10
to
In news:i3efbj$2772$1...@opal.icpnet.pl,
*Grzegorz Niemirowski* <gnthe...@poczta.onet.pl> typed:

> Piotr Palusiński <perfe...@invalid.wp.pl> napisał(a):
>> Nie miałem czasu na sprawdzenie.
>> Co do parametru /H, to jest OK.
>
> Więc skąd wiesz, że jest OK? ;) Odpaliłem DOS 6.22 i tam xcopy nie ma
> parametru /H. Wprowadzono go później, pewnie w Windows 95.

Fakt, teraz sprawdziłem i nie widzę H ;-(

>> A może zastosować jakiś zewnętrzny programik?.
>
> Tak, ewentualnie wygenerować ten 600-linijkowy skrypt.
> XCOPY samo w sobie niestety nie da rady, ani pod DOS ani pod Windows.
> Można je umieścić w pętli ale FOR idący po katalogach występuje w Windows
> a pod DOS 6.22 go nie ma, tzn. jest ale umie tylko iść po plikach.

W tym sęk.

Chopin

unread,
Aug 6, 2010, 4:56:27 AM8/6/10
to
W dniu 2010-08-05 15:59, Grzegorz Niemirowski pisze:

> Użytkownik "Chopin" <marci...@pocztaonet.pl> napisał w wiadomości
> news:i3ee0c$jod$1...@news.onet.pl...
>> Zrób w dwóch krokach:
>> dir C:\Dane\*.* /A:D /B > C:\lista.txt
>
> Nawet OK ale nie ma sensu pisac *.*. Jedna gwiazda wystarcza a zapis *.*
> powoduje, że do listy trafiają też niepotrzebnie katalogi . i ..
Lista jest ograniczona wyłącznie do katalogów dzięki użyciu parametru
/A:D. Bez tego parametru podanie nawet jednej gwiazdy spowoduje, że na
liście pojawią się również pliki, jeżeli takowe istnieją.

>> for %f in (C:\lista.txt) do copy X\plik.txt
>> c:\Dane\%f\Ksiego~1\Magazyn /Y
>
> W DOS FOR nie ma możliwości analizownia zawartości pliku.
>

No cóż jeżeli tak jest to zrobiłbym tą akcję następująco.
Przenoszę plik lista.txt (wynik polecenia DIR) na komputer gdzie jest
arkusz kalkulacyjny (MS Office, Open Office, Gnumeric, etc...).
Zawartość pliku lista.txt wklejam w skoroszycie do kolumny B. W kolumnie
A wprowadzam "copy c:\Dane" i kopiuję ten sam tekst w dół (klikając na
czarny punkcik w prawym dolnym rogu komórki). W kolumnie C
"Ksiego~1\Magazyn /Y" i też kopia w dół. Następnie całą zawartość
arkusza kopiujemy np. do notatnika.
W efekcie otrzymamy strukturę:
copy c:\Dane F001 Ksiego~1\Magazyn /Y
copy c:\Dane F002 Ksiego~1\Magazyn /Y
...

Zamieniamy tabulator (w notatniku Ctrl+H) na znak: \
Potwierdzamy zamianę wszystkich tabulatorów. Zapisujemy plik jako
nazwa.bat, przenosimy na docelowy komputer i go uruchamiamy :-).


--
Pozdrawiam,
Chopin
"Gdynia moje miasto"

Grzegorz Niemirowski

unread,
Aug 6, 2010, 5:25:47 AM8/6/10
to
Chopin <marci...@pocztaonet.pl> napisał(a):

>>> Zrób w dwóch krokach:
>>> dir C:\Dane\*.* /A:D /B > C:\lista.txt
>> Nawet OK ale nie ma sensu pisac *.*. Jedna gwiazda wystarcza a zapis *.*
>> powoduje, że do listy trafiają też niepotrzebnie katalogi . i ..
> Lista jest ograniczona wyłącznie do katalogów dzięki użyciu parametru
> /A:D. Bez tego parametru podanie nawet jednej gwiazdy spowoduje, że na
> liście pojawią się również pliki, jeżeli takowe istnieją.

Czy ja pisałem coś o parametrze /A:D? Lista dzięki niemu jest ograniczona i
ja temu ani nie przeczę ani nie podważam zasadności. Odniosłem się jedynie
do zapisu *.*, który lepiej zaminieć na * a parametr powinien zostać bo jest
potrzebny :)

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 2 days, 22 hours, 9 minutes and 49 seconds

Karol_tom

unread,
Aug 8, 2010, 9:31:27 AM8/8/10
to
a FreeDOS (czy jak on się teraz nazywa) nie posiada "udoskonalonej" wersji
for ?
Sądzę, że tak, a jest w pełni darmowy i można go odpalić z różnych nośników,
więc może to jest rozwiązanie ?


BTW--->czy to na pewno odpowiednia grupa ?

grapeli23

unread,
Aug 9, 2010, 10:45:24 AM8/9/10
to
Dnia 04.08.2010 sko...@op.pl <sko...@op.pl> napisał/a:
> Czyli musze napisac prawie 600 linijek w skrypciku ?
> copy plik.txt c:\Dane\katalog123\Ksiegowosc\Magazyn
> copy plik.txt c:\Dane\katalogABC\Ksiegowosc\Magazyn
> copy plik.txt c:\Dane\kierownik\Ksiegowosc\Magazyn
> copy plik.txt c:\Dane\dyrektor\Ksiegowosc\Magazyn
>
> kurcze szkoda, myślałem że zadziała tak jak w unix'sie:
> cp plik.txt /home/Dane/*/Ksiegowosc/Magazyn
>
>
Nie jest to tak skomlikowane jakby na pozór mogłoby się wydawać.

Pobierz sed-a pod MS-DOS
http://www.pement.org/sed/sed15exe.zip

dir /AD /S /B C:\Dane > dirlist
sed.exe "#^#copy plik.txt #g" dirlist > copy.bat

Grzegorz Niemirowski

unread,
Aug 9, 2010, 11:20:59 AM8/9/10
to
grapeli23 <grap...@googlemail.com> napisał(a):

> Nie jest to tak skomlikowane jakby na pozór mogłoby się wydawać.
> Pobierz sed-a pod MS-DOS
> http://www.pement.org/sed/sed15exe.zip
> dir /AD /S /B C:\Dane > dirlist
> sed.exe "#^#copy plik.txt #g" dirlist > copy.bat

Pomysł dobry, tylko trzeba znaleźć sed pod DOS, bo ten link co podałeś
prowadzi do seda pod Windows.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 6 days, 4 hours, 6 minutes and 23 seconds

grapeli23

unread,
Aug 9, 2010, 11:44:10 AM8/9/10
to
Dnia 09.08.2010 Grzegorz Niemirowski <gnthe...@poczta.onet.pl> napisał/a:
>
> Pomysł dobry, tylko trzeba znaleźć sed pod DOS, bo ten link co podałeś
> prowadzi do seda pod Windows.
>
Faktycznie nie ten link.
http://www.pement.org/sed/sed15x.zip

Ja testowałem pod dosemu. Działa, z tymże lista katalogów może zbyt duża
(dużo innych podkatalogów) to można na przykład tak.

sed "/Magazyn[ ]*$/!d;s#[ ]*$##g;s#^#copy file.txt ##g" dirlist > copy.bat

Listing zawiera przed końcem nowem linij 11 spacji (nie mam pojęcia skąd
się biorą). Teraz jes usuwam.

grapeli23

unread,
Aug 9, 2010, 12:04:57 PM8/9/10
to
Może troszkę czytelniej i bez błędów :)


Pobieramy seda for MS-DOS.
http://www.pement.org/sed/sed15x.zip

Robimy listę podkatalogów (wszystkich)

dir /AD /S /B C:\Dane > dirlist

#Ograniczamy listę do celu kopiowania, c:\Dane\*\Magazyn
sed "/Magazyn[ ]*$/!d"

#usuwamy niepotrzebne spacje przed znakiem nowej linii
sed "s#[ ]*$##g"

#Zamieniamy linię z nazwą katalogu
sed "s#^#copy file.txt #g"

A teraz wszystko w jednej linijce (i bez pomyłek)

sed "/Magazyn[ ]*$/!d;s#[ ]*$##g;s#^#copy file.txt #g" dirlist > copy.bat

xv

unread,
Aug 10, 2010, 6:59:13 PM8/10/10
to
Użytkownik grapeli23 napisał:

Sam DOS jes ułomny i nie można za jego pomocą wczytywać danych z pliku
czy rurki do dlaszej obróbki. Ale skoro sed to czemu od razu nie awk? A
narządź ten potrafi więcej niż wszystkie polecenia DOS-a ;)
Pobierasz awk dla DOS z ftp://garbo.uwasa.fi/pc/unix/awk9708.zip
Tworzysz plik tekstowy skrypt.awk o zawartości:

BEGIN {
FILE = "PLIK.TXT"
DIR1 = "C:\\DANE"
DIR2 = "KSIEGOWO\\MAGAZYN"
while("DIR /B /A:D " DIR1 | getline>0) {
DOUT = DIR1 "\\" $0 "\\" DIR2
print "Kopiuje " FILE " do katalogu " DOUT
system("COPY /Y " FILE " " DOUT)
}
}

I uruchamiasz poleceniem
awk -f skrypt.awk
Wszystko gra i bucy bez konieczności tworzenia 600-linijkowego bata.

Grzegorz Niemirowski

unread,
Aug 10, 2010, 7:05:41 PM8/10/10
to
xv <x...@nosspamm.gazzetta.pl> napisał(a):

Resolving garbo.uwasa.fi... 193.166.120.5
Connecting to garbo.uwasa.fi|193.166.120.5|:21... failed: Connection
refused.

Działa np. http://www-ftp.lip6.fr/pub/freedos/gnuish/awk9708.zip

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/

Uptime: 7 days, 11 hours, 49 minutes and 48 seconds

0 new messages