Skrypt tworzący plik i listę plików


(Lukaszm Zdw) #1

Witam mam taką prośbę otóż chodzi mi o jakieś wasze wskazówki otóż

chciałbym napisać skrypt który tworzy plik z listą plików znajdujących sie w katalogu z którego został uruchomiony ten skrypt. Plik ten ma mieć nazwę podaną przez użytkownika skryptu z linii poleceń. Ponadto ta lista ma być uporządkowana w odwrotnej kolejności do alfabetycznej. 1)w przypadku nie podania argumentu wyswietla komunikat (podaj argument lub wpisz (nazwa skryptu)/?") 2)w przypadku (nazwa skryptu/?") zostaje wyswietlona krótka pomoc

doradzicie mi coś?


(somekind) #2

Skrypt, nie program? A jaki system operacyjny? Od tego zacznij :slight_smile:


(Lukaszm Zdw) #3

system windows xp ponoć to się da w cmd napisać...


(Ryan) #4

Plik files.cmd:

@echo off

if "%1"=="" goto help

if "%1"=="-"

dir /B /O-N "%cd%"

if NOT "%1"=="-"

dir /B /O-N "%cd%" > %1

goto :eof

:help

echo.

echo Syntax:

echo files.cmd ^

echo.

Jeśli parametrem będzie minus - wynik poleci na ekran a nie do pliku.


(Airborn) #5

jeżeli miało by to listować tylko pliki, to warto było by do dir dodać jeszcze przełącznik /A-D


(Lukaszm Zdw) #6

hmm jeśli bym chciał zastosować to co napisał Airborn to bedzie teraz to wyglądać tak:

?


(Airborn) #7
@echo off

if "%1"=="" goto help

if "%1"=="-"

dir /A-D /B /O-N "%cd%"

if NOT "%1"=="-"

dir /A-D /B /O-N "%cd%" > %1

goto :eof

:help

echo.

echo Syntax:

echo files.cmd ^

echo.

raczej w ten sposób :wink:


(Lukaszm Zdw) #8

dodam jeszcze że to ma na dysku tworzyć folder i plik tekstowy w tym folderze Ryan bo jak naciskam files.cmd to mi ten ekran szybko znika to w końcu dobrze działa czy żle?


(Ryan) #9

Dodam jeszcze, że żaden skrypt ani program nie wykona czegoś, co nie wie, że ma wykonać. Dodam też, że aby uruchomić konsolę na stałe wystarczy ją uruchomić ręcznie - windows+r, cmd, [enter].


(Lukaszm Zdw) #10

z ogromna pomocą Airborn otrzymaliśmy coś takiego tzn on otrzymał

problematyczna jest przedostatnia linijka... jak z poziomu bat'a wywołać bat'a z parametrem?


(Ryan) #11

Matko, co wyście z tym zrobili... Co to ma niby być?

set /P parametr=Podaj nazwe pliku 

%0 %parametr%

(Lukaszm Zdw) #12

Ryan z tego co ty podałeś w 1 odpowiedzi to jak wpisuje w cmd c:\files.cmd plik.txt to wyskakuje składnia polecenia jest niepoprawna.

na pewno musi być ten element:

dir /A-D /B /O-N "%cd%" > %1

dzieki niemu tworzy się plik.txt z listą plików w odwrotnej kolejności...


(Ryan) #13

To znaczy, że nie istnieje plik "files.cmd" na c - proste. Spróbuj użyć z minusem, usunąć echo off z początku pliku - kombinuj. Przy tak zdawkowych informacjach jakie podajesz ciężko zgadnąć co się dzieje nie tak.


(Lukaszm Zdw) #14

plik jest na c

zmieniłem na:

@echo off

if "%1"=="+" goto help

if "%1"=="+"

dir /A-D /B /O-N "%cd%"

if NOT "%1"=="-"

dir /A-D /B /O-N "%cd%" > %1

goto :eof

:help

echo.

echo Syntax:

echo files.cmd ^

echo.

usuwałem 1 linijke i tez dalej to samo składnia polecenia nie jest poprawna


(Ryan) #15

Powtórzę się: nie jestem wróżką. Wywal echo off.


(Lukaszm Zdw) #16

wywalaliłem @echo off


(Airborn) #17

fajnie. a teraz pokaż co wypluwa skrypt


(Lukaszm Zdw) #18

@echo off

C:\>if "plik.txt" == "-" goto help

składnia polecenia jest niepoprawna.

C:\>if "plik.txt"=="-"

C:\>