Re: DOS kopiowanie pliku do folderu

Autor: xv <xv_at_nosspamm.gazzetta.pl>
Data: Wed 11 Aug 2010 - 00:59:13 MET DST
Message-ID: <i3sljv$l76$1@inews.gazeta.pl>
Content-Type: text/plain; charset=ISO-8859-2; format=flowed

Użytkownik grapeli23 napisał:
> Dnia 04.08.2010 skowron@op.pl <skowron@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
>

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.
Received on Wed Aug 11 01:00:03 2010

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Wed 11 Aug 2010 - 01:42:01 MET DST