Win32 probléma, sajnos magam lámázom. hogyan oldanátok meg ezt, programozás nélkül (tehát csak egy batch file által):
olvasd ki a rendszerdátumot -- fika, ez itt semmi
ezen a néven hozz létre egy könyvtárat adott helyen (pl c gyökér) -- no, ezt (lehetőleg) változók nélkül hogy a rákban lehet?
vonj ki a dátumból !naptárilag helyesen! (szökőév stb) egy napot -- szóval "naptárilag" helyesen :O
a kapott dátum néven szerepelni fog egy mappa, ami törlendő -- itt is az első fele a sötét, második tárgytalan.
mindezt Linux alatt meg tudom csinálni, Win32 alatt pascalban meg tudom csinálni (aztán exe-nek fordítani), viszont programozás nélkül Win32 alatt sajnos nem. segítsetek ki kérlek, nagyon kéne.
köszi
- 3565 megtekintés
Hozzászólások
Ha linux alatt megy, akkor vélhetően cygwin-bash páros is viszi.
- A hozzászóláshoz be kell jelentkezni
igen, de ez sajnos nem járható út. Bármely WinNT "csupasz" parancssori üzemmódjában kéne mennie...
ha majd végképp nem jutok semmire, akkor marad a Pascal, csak hát ezt szeretném elkerülni.
- A hozzászóláshoz be kell jelentkezni
Úgy tudom a windows batch nyelve erre nem képes. (nem biztos)
Na most ha ez így van, akkor mindenképp fel kell tenned valamilyen
értelmezőt! Alapból szerintem javascript meg vbscript értelmező van, de
azt nem tudom, konzolra tudnak e írni.
Én ilyen esetekre perl-t vagy python-t használok, az jó mert van windowsra meg linuxra is. Sok szerencsét!
- A hozzászóláshoz be kell jelentkezni
kösz, ettől féltem.
Ui, prog: én ezen a téren sajnos csak a pascalhoz értek. nem vagyok egy prog guru.
- A hozzászóláshoz be kell jelentkezni
A windows és a DOS batch nyelve mennyiben tér el?
(azonkívül hogy NT-ben .cmd-nek hívják a .bat-okat)
- A hozzászóláshoz be kell jelentkezni
mindezt Linux alatt meg tudom csinálni, Win32 alatt pascalban meg tudom csinálni (aztán exe-nek fordítani), viszont programozás nélkül Win32 alatt sajnos nem. segítsetek ki kérlek, nagyon kéne.
köszi
Valakinek a napi teendői közé fel kell venni a feladatot.
Az majd összekattingatja az intézőben amikor szükséges...
:-D
--
maszili
- A hozzászóláshoz be kell jelentkezni
idézet az oldalról:
"Here are some ports of common GNU utilities to native Win32. In this context, native means the executables do only depend on the Microsoft C-runtime (msvcrt.dll) and not an emulation layer like that provided by Cygwin tools."
szoktam használni őket, szerintem próbáld ki.
- A hozzászóláshoz be kell jelentkezni
Ahogy már korábban említették: van a Windows-ban egy WSH (Windows Scripting Host) nevű dolog (win98-ban már igen, szvsz NT-ben is) amiben pl VisualBasic-ben írogathatsz dolgokat.
Szvsz változóval/nélkül egy dátumnak megfelelő nevű könyvtárat nemigen tudsz létrehozni.
--
Felnőtt férfi vagyok! Azt teszem amit a nők mondanak.
- A hozzászóláshoz be kell jelentkezni
"változó nélkül"
igen, sajnos erre számítottam - ezért is írtam, hogy (lehetőleg). azért kár, hogy a Win32 alapértelmezett "parancsétege" összességében szerényes képességű. nekem legalábbis annak tűnik, a (gyakorlatilag) C-t értelmező Linux burokhoz képest mindenképpen.
- A hozzászóláshoz be kell jelentkezni
Neked a cscript.exe akarmi.js/vbs kell :-)
Ez defaultban minden dcom98-at tartalmazó windowson rajta van, hacsak a virusok miatt el nem mozgatták/át nem nevezték, le nem törölték, stb...
JScript-ben (JavaScript a'la ms) tudsz letrehozni new Date()-tel date objectet.
new ActiveXObject("Scripting.Filesystem")-mel meg könyvtárat létrehozni, stb.
- A hozzászóláshoz be kell jelentkezni
Magyar Windows 2000 Prof alatt ezzel lehet az aktuális dátumnak megfelelő könyvtárat létrehozni batch fájlból.
datum.cmd
setlocal enableextensions
FOR /F "tokens=1-2 delims= " %%i in ("%DATE%") do set tmp=%%j
FOR /F "tokens=1-3 delims=." %%i in ("%tmp%") do set datum=%%i%%j%%k
mkdir %datum%
- A hozzászóláshoz be kell jelentkezni
öö. próbálom, de ez az enableextensions az első próbagépen nem megfelelő paraméter.
a '/?' kapcsoló azt mondja, hogy ugyan létezik - a rendszer viszont nem fogadja.
- A hozzászóláshoz be kell jelentkezni
Akkor hagyd ki azt a sort. Viszont batch-ként futtasd, ne kézzel írd be parancssorba, a kiterjesztés cmd legyen.
- A hozzászóláshoz be kell jelentkezni
cmd: úgy csináltam, természetesen.
ha kihagyom, akkor (mint az várható) elhasal.
- A hozzászóláshoz be kell jelentkezni
Nekem magyar Windows 2000 Professional Service Pack 4 van. Ezen fut.
Esetleg adjál már egy
DATE /T
kimenetet. Nekem:
Sze 2006.06.07
- A hozzászóláshoz be kell jelentkezni
átültem mhelyi WinP elé
enableextensions nem megy
nagy betűvel írva a paramétert, viszont működik.
fél siker: az mkdirt itt viszont nem lehet olyan módon paraméterezni, ahogyan ajánlottad. basszus, pedig már úgy örültem :( azért köszi, még próbálom én is.
- A hozzászóláshoz be kell jelentkezni
Mielőtt megijednél: magyar WXP SP2
mkdir %DATE%
Mivel ezek szerint a DATE változó már eleve tartalmazta a mai dátumot, hogy a setlocal kell-e, ki tudja.
UI. ez eddig szép, de ahhoz, hogy naptárilag helyesen dolgozz vele inkább egy egészre lenne szükséged (adott dátumtól eltelt napok száma) amit a rendszer ha kell egészként, ha kell dátumként kezel.
--
Felnőtt férfi vagyok! Azt teszem amit a nők mondanak.
- A hozzászóláshoz be kell jelentkezni
elsőt köszi, igen triviális, megnézem, megy-e Win2k és NT4 alatt is - mint látod, sajnos nem vagyok Win32 fenomén :(
a dolog második részen még rágódok, a lentebb adott példát nézegetem.
- A hozzászóláshoz be kell jelentkezni
Nem túl elengáns, de működő megoldás az előző nap kiszámolására:
@echo off
for /f "tokens=1,2,3*" %%i in ("%DATE:.= %") do (
set YEAR=%%i
set MONTH=%%j
set DAY=%%k
)
echo Akt dátum: %YEAR%-%MONTH%-%DAY%
set /A DAY=%DAY%
set /A MONTH=%MONTH%
set /A DAY=%DAY%-1
set /A YEAR_MOD_4=%YEAR%%%4
set /A YEAR_MOD_100=%YEAR%%%100
set /A YEAR_MOD_400=%YEAR%%%400
set /A PREV_MONTH=%MONTH%-1
if %DAY% LEQ 0 (
if %PREV_MONTH% EQU 0 SET DAY=31
if %PREV_MONTH% EQU 1 SET DAY=31
if %PREV_MONTH% EQU 3 SET DAY=31
if %PREV_MONTH% EQU 4 SET DAY=30
if %PREV_MONTH% EQU 5 SET DAY=31
if %PREV_MONTH% EQU 6 SET DAY=30
if %PREV_MONTH% EQU 7 SET DAY=31
if %PREV_MONTH% EQU 8 SET DAY=31
if %PREV_MONTH% EQU 9 SET DAY=30
if %PREV_MONTH% EQU 10 SET DAY=31
if %PREV_MONTH% EQU 11 SET DAY=30
if %PREV_MONTH% EQU 2 (
if %YEAR_MOD_4% EQU 0 (
if %YEAR_MOD_100% EQU 0 (
if %YEAR_MOD_400% EQU 0 (
SET DAY=29
) else (
SET DAY=28
)
) else (
SET DAY=29
)
) else (
SET DAY=28
)
)
set MONTH=%PREV_MONTH%
)
if %MONTH% LEQ 0 (
set MONTH=12
set /A YEAR=%YEAR%-1
)
if %DAY% LSS 10 set DAY=0%DAY%
if %MONTH% LSS 10 set MONTH=0%MONTH%
echo Előző nap: %YEAR%-%MONTH%-%DAY%
- A hozzászóláshoz be kell jelentkezni
Ez tegnap még működött, mára már elromlott.
A gond ezeknél a soroknál van:
set /A DAY=%DAY%
set /A MONTH=%MONTH%
Az a probléma, hogy ha 0-val kezdődik a szám, akkor oktálisnak értelmezi, és ugye 8-9.-én, és 8-9. hónapban gondban vagyunk. Valahogy le kell vágni a kezdeti nullát a %DAY%-ból, meg a %MONTH%-ból, talán valahogy így:
if %DAY% LSS 10 (
for /f "tokens=1 delims=0" %%i in ("%DAY%") do (
set DAY=%%i
)
)
- A hozzászóláshoz be kell jelentkezni
YourJob.vbs
Sub Syntax
msg = "YourJob.vbs [Dir | /? - help]"
Wscript.Echo(msg)
Wscript.Quit(1)
End Sub
Function CreateDir( sPath )
Dim fso 'File System Object
set fso = CreateObject("Scripting.FileSystemObject")
if Not fso.FolderExists( sPath ) then
Call CreateDir( fso.GetParentFolderName( sPath ) )
fso.CreateFolder( sPath )
end if
End Function
Function DeleteDir( sPath )
Dim fso
set fso = CreateObject("Scripting.FileSystemObject")
if fso.FolderExists( sPath ) then
fso.DeleteFolder( sPath )
end if
End Function
Select Case WScript.Arguments.Count
Case 0
' "c:\" the default dir
strDir = "c:\"
Case 1
Select Case WScript.Arguments(0)
' "?", "-?" or "/?" invoke help
Case "?"
Syntax
Case "-?"
Syntax
Case "/?"
Syntax
Case Else
strDir = WScript.Arguments(0)
End Select
Case Else
' More than 1 argument is not allowed
Syntax
End Select
CreateDir(strDir & "\" & Date())
Dim y, m, d, strM, strD
y = Year(Date())
m = Month(Date())
d = Day(Date())
' A feltetelt kell megirni.
'if y & m & d-1 == valid then
if m < 10 then
' mar. -> 3 -> 03
strM = 0 & m
end if
if d < 10 then
strD = 0 & d
end if
DeleteDir(strDir & "\" & y & "." & strM & "." & strD)
'end if
Wscript.Quit(1)
Elso probalkozasra ment. A y, m, d valtozokban ott van az Ev, Ho, Nap a te feladatod kitalalni, hogy melyik az elozo nap.
Udv.: Ben
- A hozzászóláshoz be kell jelentkezni
Egyszer feltettem a keresztkérdést a prog.hu-n, miszerint hogyan
lehet egy adott dátumnál régebbi fájlokat törölni NT4+SP6 alatt.
Na kb. ilyen egyszerű / triviális megoldásokat javasoltak
mint ez a fenti kettő. :)
Ezzel nem a két segítőt akartam piszkálni, csak szerintem
egyszerűen nincsenek (normális) eszközök az ilyen feladatok
megoldására.
--
maszili
- A hozzászóláshoz be kell jelentkezni
Mit ertesz egyszeruseg alatt?
Pl. Leirnad Lin alatt hogyan csinalnad?
- A hozzászóláshoz be kell jelentkezni
Pl. Leirnad Lin alatt hogyan csinalnad?
Adott könyvtárra rekurzívan max 2 könyvtár mélységig a tíz napnál régebben módosult és kis a betűvel kezdődő nevű fájlokra végrehajtva az ls -l parancs
find /home/maszili -maxdepth 2 -ctime -10 -name "a*" -exec ls -l {} \;
(remélem jól írtam :) )
Na ezt nevezem én egyszerűségnek...
--
maszili
- A hozzászóláshoz be kell jelentkezni
Szerintem ez nem egyszerubb csak rovidebb.
- A hozzászóláshoz be kell jelentkezni
Szerintem ez nem egyszerubb csak rovidebb.
Hát nemtom...
Nekem egyszerűbb. Két oldalnyi hieroglifa helyett
egy sorban elmondom hogy mit akarok.
De ez már nagyon szubjektív :)
--
maszili
- A hozzászóláshoz be kell jelentkezni
Benedicht kódjának futtatásakor is egy sorban mondod el, hogy mit akarsz
- A hozzászóláshoz be kell jelentkezni
Benedicht kódjának futtatásakor is egy sorban mondod el, hogy mit akarsz
Ez igaz...
De előte megírta azt a programot amit bílgécnek kellett volna megtennie a pénzéért. :)
Tehát ennek fényében, ha így nézzük akkor összességében megint oda lyukadunk ki hogy igen windows alatt is meg lehet oldani az ilyen alapvető mindennapos feladatokat de nem gyári eszközökkel hanem mások által megírt (+pénzért megvásárol) vagy saját magunk által írt komlex programokkal. Vagy marad az intézőben való kattingatás.
Bílgéc meg gyémánttal tapétáztatja az újabb kastélyának szobáit. :)
--
maszili
- A hozzászóláshoz be kell jelentkezni
A find sehol nem "gyári eszköz". Amennyiben neked fontos, hogy a customer gépén fent legyen, 2 dolgot tehetsz: feltételezed, hogy fent van (rossz megoldás), vagy előírhatod hogy fent legyen (jó megoldás). Előírni pedig minden olyan platformon előírhatod, ahol egyébként elérhető.
A harmadik lehetőség (sipákolni, meg jajongani afelett, hogy éppen mi van és mi nincs valakinek a telepítő lemezén, illetve hogy amerikai üzletemberek mennyit keresnek) nem visz előre a probléma megoldásában.
- A hozzászóláshoz be kell jelentkezni
Ezt hívják mellébeszélésnek.
- A hozzászóláshoz be kell jelentkezni
ezt mondom én is
- A hozzászóláshoz be kell jelentkezni
de én a _te_ válaszodra :)
- A hozzászóláshoz be kell jelentkezni
ezt hívják magánvéleménynek :)
- A hozzászóláshoz be kell jelentkezni
A find sehol nem "gyári eszköz".
Hát nemtom...
Én még nem láttam olyan posix oprendszert amiben ne lett
volna benne. Még az Alcatel telefonközpont oprendszerén
(Chorus MiX V.3.2 r4.1.5 COMP-386) is megtalálható.
De én nem konkrétan a find programot hiányolom hanem az olyan
eszközök összességét amelyekkel egyszerűen lehet automatizálni
a mindennapos feladatokat. A keresőkutya nem tartozik ezek közé. :)
Amennyiben neked fontos, hogy a customer gépén fent legyen, 2 dolgot tehetsz: feltételezed, hogy fent van (rossz megoldás), vagy előírhatod hogy fent legyen (jó megoldás). Előírni pedig minden olyan platformon előírhatod, ahol egyébként elérhető.
Namost ebben az esetben én vagyok a customer.
- Feltételezem hogy van a vindózban olyan eszköz ami segíti a munkámat. (tévedtem...)
- Előírhatom bílgécnek hogy tegyen használható eszközöket az általa sok pénzért árult rendszerbe :) (eredménytelen...)
A harmadik lehetőség (sipákolni, meg jajongani afelett, hogy éppen mi van és mi nincs valakinek a telepítő lemezén, illetve hogy amerikai üzletemberek mennyit keresnek) nem visz előre a probléma megoldásában.
Én úgy vagyok vele, hogy ha fizetek valamiért akkor azt szeretném használni is. Nem pedig kerülőutakon +költséggel+energiával megoldani azt a problémát amit a pénzért vett megoldásnak kellene elvégeznie.
--
maszili
- A hozzászóláshoz be kell jelentkezni
>> Én úgy vagyok vele, hogy ha fizetek valamiért akkor azt szeretném használni is
de a browsert meg a medialejátszót azért csak vetessük ki belőle
- A hozzászóláshoz be kell jelentkezni
>> Én úgy vagyok vele, hogy ha fizetek valamiért akkor azt szeretném használni is
de a browsert meg a medialejátszót azért csak vetessük ki belőle
Kicsit elkanyarodtunk a témától :)
--
maszili
- A hozzászóláshoz be kell jelentkezni
Az, hogy neked hieroglifa, arrol en nem tehetek. Persze irhattam volna js-ben is, igazad van.
Az hogy ket oldal, az azert van, mert tobb funkcionalitast tettem bele. Ha csak a lenyegre torekszem, par sorbol kijott volna ez is.
Az egyszeruseg szubjektiv dolog, ahogy irtad is. Amit irtam neked nem egyszerubb, mert csak 'hieroglifakat' latsz, es ez visszafele is mukodhet(valakinek a tied hieroglifa).
Masreszt az en megoldasom, imo sokkal de sokkal atlathatobb, konnyebb modositani, felhasznalobaratabb, es kb. ugyanannyi idobe(ha nem kevesebb, ha minimalis programozasi tudasa van az illetonek) telik megtanulni azt a szintakszist, mint a tiedet, ami nem egy konkret programozasi nyelvhez hasonlit, es pipeokat hasznal. A wsh-hoz a dokumentacio egy helyen van, peldakkal teletuzdelve.
- A hozzászóláshoz be kell jelentkezni
man find
- A hozzászóláshoz be kell jelentkezni
uhumm, azt a tiz sort igazan beleirhattad volna, ami az elozo napot kiszamolja:) az a plusz funkcionalitás pedig khm - lóf*sz.
kevesebb "hieroglifát"..
rmdir `date -d yesterday +%Y-%m-%d`
mkdir `date +%Y-%m-%d`
..még könnyebb átlátni?
más kérdés, hogy csak egy programozónak elég megtanulni egy új nyelv szintaktikáját - ami egyébként kb. ahhoz elég, hogy gányoljon -, egy hozzá nem értőnek mondhatod, hogy ez a ciklus szintaktikája, ez meg a feltételé. próbálj meg más paradigmájú nyelven programozni, mint amilyenben tudsz, ez kb. olyan.
- A hozzászóláshoz be kell jelentkezni
jah amúgy lol hupperek, az egyik a kérdésre válaszolna, de lusta normális megoldást adni, a másik meg a find-ot fújja és offol.
- A hozzászóláshoz be kell jelentkezni
Hmm, en lennek az aki lusta vagyok normalis megoldast adni?
Ha igen, akkor kikerem magamnak. :D
Nem vagyok hajlando teljes megoldast csinalni, mert tokeletesen megfelelo alapot adtam ahhoz, hogy ezezn az uton meg tudja csinalni a feladatot - csak az egy napos kivonast kell megcsinalnia, azt irta letudja programozni. Masreszt ugy tanul, ha probalkozik, legalabb a nap kiszamolasat csinalja meg. Ugyerzem, ez a megfelelo segitseg, nem az ha segge ala tolom az egesz feladat megoldasat.
- A hozzászóláshoz be kell jelentkezni
azt a tiz sort igazan beleirhattad volna, ami az elozo napot kiszamolja:)
Mint fentebb irtam, o is dolgozzon meg erte.
az a plusz funkcionalitás pedig khm - lóf*sz
Lóf*sz, de meg igy is sokkal tobb, mint az az egysoros lokuki. ;)
egy hozzá nem értőnek mondhatod, hogy ez a ciklus szintaktikája, ez meg a feltételé
Egy hozza nem ertonek magyarazhatod, hogyan mukodnek a pipeok, es esetenkent tobb parancs kulonbozo kapcsoloinak megtanulasa sem olyan egyszeru.
Ezert mondtam, hogy a ketto megtanulasa kb. ugyanolyan konnyu/nehez.
- A hozzászóláshoz be kell jelentkezni
feljebbire is válaszolva:
Ugyerzem, ez a megfelelo segitseg, nem az ha segge ala tolom az egesz feladat megoldasat.
mondjuk ez már filozófia kérdése; van aki a teljes megoldásból is tanul, mert nem csak lemásolja; én például, ha valaki olyan kódot/szkriptet ír, amiben számomra ismeretlen dolog van, sokszor megnézem, hogy az miért is jó úgy.
ennek fényében így visszavonom, hogy lusta lennél:), de a 'megadott könyvtárban végzi a dolgát' és a 'syntax' bloat:)-funkciók nem érnek annyit, mint a lényegi rész, ráadásul azt sem tudtam meg, hogy ezen a nyelven hogy hívják a maradékos osztást, és azt se, hogy neadjisten hogyan kell (konstans) tömböt definiálni.. :)
Egy hozza nem ertonek magyarazhatod, hogyan mukodnek a pipeok, es esetenkent tobb parancs kulonbozo kapcsoloinak megtanulasa sem olyan egyszeru.
Ezert mondtam, hogy a ketto megtanulasa kb. ugyanolyan konnyu/nehez.
pipe-ok ugyan nem voltak, max. implicit (a backtick), meg a pipe magában sokszor nem elég, viszont nagy segítség; nekem eszem ágában se lenne ilyen bash-one-linereket akár perlben elágazással/ciklussal kódolni, ha már ismerek jópár parancsot kapcsolóstul. esetleg nem-unix alatt, kissé bosszankodva.
- A hozzászóláshoz be kell jelentkezni
ráadásul azt sem tudtam meg, hogy ezen a nyelven hogy hívják a maradékos osztást, és azt se, hogy neadjisten hogyan kell (konstans) tömböt definiálni.. :)
Mivel nem is neked keszult. Nem neked irtam. Aki akarja, utanna tud nezni. ;)
nekem eszem ágában se lenne ilyen bash-one-linereket akár perlben elágazással/ciklussal kódolni, ha már ismerek jópár parancsot kapcsolóstul.
Izlesek es pofonok, nekem jobban bejonnek a tobbsoros, viszont atlathatobb scriptek.
- A hozzászóláshoz be kell jelentkezni
eh... neked mi az egyszerűség!?
- A hozzászóláshoz be kell jelentkezni
s/szerintem egyszerűen nincsenek/nem ismerek/
findutils
- A hozzászóláshoz be kell jelentkezni
Gondolom arra gondolt, hogy default nincsenek.
Éppen ezért rengeteg 3. party alkalmazás létezik win-re, sok kis cég meg bír ebből élni. Ha egy nap az MS normális utilokat akarna adni az épp aktuális oprendszeréhez, szép kis pernek nézne elébe.
- A hozzászóláshoz be kell jelentkezni
"default" sehol sincsenek, ugyanaddig tart felpakolni
- A hozzászóláshoz be kell jelentkezni
Azért tudnék mondani "néhány" olyan oprendszert, ahol pl a findutils, vagy egy normális shell része a default installnak.
- A hozzászóláshoz be kell jelentkezni
akkor ebben egyetértünk, ilyen pl az én default win installom
- A hozzászóláshoz be kell jelentkezni
Eléggé liberálisan értelmezed a default install fogalmát :-)
Módosíthatod a telepítő CD-t, de akkor az már nem a gyári CD, és az arról történő install az én fogalmaim szerint nem nevezhető default install-nak. Max akkor, ha csak a service pack-et slipstream-elted rá, az is csak azért, mert van olyan gyári telepítő CD, amin ugyanezt megcsinálták.
- A hozzászóláshoz be kell jelentkezni
Kapaszkodj meg, mind a POSIX 2003, mind az LSB 3.1 szerint az alaprendszer resze kell legyen a findutils...
katt
- A hozzászóláshoz be kell jelentkezni
>> Ha egy nap az MS normális utilokat akarna adni az épp aktuális
oprendszeréhez
akar :)
- A hozzászóláshoz be kell jelentkezni
A default install az, amikor belököd a gyári cd-t, aztán nyomkodod az entert, vagy az ok gombot. Ez is föl fog így kerülni?
- A hozzászóláshoz be kell jelentkezni
Érdekes definíció...
Ezek szerint a Linux disztribek egy részének nincs is default installja... :)
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Igen, általában ez szokott lenni a reakció...
Vegyél egy másik fél által készített eszközt és használd azt
a rendszerben a (nem) létező eszközök helyett.
Köszönöm szépen...
--
maszili
- A hozzászóláshoz be kell jelentkezni
mindenhol "másik fél által készített eszköz" a find, ha nem te írtad
- A hozzászóláshoz be kell jelentkezni
mindenhol "másik fél által készített eszköz" a find, ha nem te írtad
Ebben az esetben a másik fél az aki az eszközt készítette az
egyik fél meg az oprendszert. Vagyis az ms :)
Vagyis egy UNIX/Linux/*BSD rendszer részét képezik az ilyen
hasznos kis eszközök, ellentétben a má$ik rendszerrel...
--
maszili
- A hozzászóláshoz be kell jelentkezni
>> Ebben az esetben a másik fél az aki az eszközt készítette az egyik fél meg az oprendszert.
mindegyik esetben különbözik a két fél
>> Vagyis egy UNIX/Linux/*BSD rendszer részét képezik az ilyen hasznos kis eszközök
akkor képezik a rendszer részét, ha telepítve vannak. akkor vannak telepítve, ha éppen úgy akarom.
- A hozzászóláshoz be kell jelentkezni
Azt aláírom hogy valószínüleg nem Linus írta a find-ot. :)
De az adott disztribúció tartalmazza alap esetben a find-ot.
És valószínüleg nem Bill Gates írta a findutils-t sem :)
de a vindóz nem tartalmazza a findutils-t.
Mehetek az internetre turkálni a megfelelő eszöz után.
Viszont van helyette szimatoló kiskutya azért a pénzért amibe
kerül egy vindóz. :-D
Így már érthető hogy mi a bajom az egésszel?
--
maszili
- A hozzászóláshoz be kell jelentkezni
Haonló feladatokra én a
Free Basic Script Language ( http://www.fbsl.net/ ) -et használom.
- A hozzászóláshoz be kell jelentkezni
Ilyenkor hol vannak a winesek a tanácsaikkal? :-P
- A hozzászóláshoz be kell jelentkezni
Mennyi szép megoldás....
Nemazért srácok, de 15 perc gugli után összehoztam ezt:
akarmi.js:
function date2str(d)
{
return d.getYear()+'.'+(d.getMonth()+1)+'.'+d.getDate()+'.';
}
function getYesterday()
{
var yesterday=new Date();
yesterday.setDate(yesterday.getDate()-1);
return date2str(yesterday);
}
function getToday()
{
return date2str(new Date());
}
var FSO = WScript.CreateObject("Scripting.FileSystemObject");
try
{
FSO.CreateFolder(getToday());
FSO.DeleteFolder(getYesterday());
} catch (err)
{
WScript.Echo("ERROR");
}
Elvileg simán futnia kell mint egy .bat-nak, ha mégsem, akkor:
wscript akarmi.js
Ha konzolos végrehajtást akarsz, akkor:
cscript akarmi.js
Ilyenkor hiba esetén konzolra ír, és nem MessageBox-ba.
Ja, és a könyvtárakat az aktuális könyvtárba hozza létre, de gondolom ezt átírni már megy egyedül is... :)
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Ja, és ennyit arról, hogy: win alatt nem lehet, csak külsős cuccokkal, meg Bill Gates inkább ezt írta volna meg, stb...
Gyakorlatilag bármit lehet, registry buherálástól az excel vezérlésig.
Persze VBscripthez könnyebb doksit találni mint JScripthez, csak attól hányok...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Ja, és ennyit arról, hogy: win alatt nem lehet, csak külsős cuccokkal, meg Bill Gates inkább ezt írta volna meg, stb...
Kérhetném ugyanezt WinNT4+SP6 alatt?
De szigorúan csak a gyári telepítő cd-t használva. :)
--
maszili
- A hozzászóláshoz be kell jelentkezni
Ezzel az erővel kérhetnéd win 3.1 alatt is.
Sőt én is kitalálhatnám, hogy mi minden működjön egy 96-ban kiadott linuxon...
Maradjunk annyiban, hogy még 95-re, és NT4-re is fel lehet rakni, 98-tól fölfelé meg benne van a normal installban.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
A find az elég régóta standard eszköz a UNIX-os világban, és igen, 96-ban is volt...
Én speciel a gnufind-től kapok néha agybajt, mert a standard (PPOSIX) dolgokon felüli "feature"-ök igen szívesen használt dolgok Linux alatt -- viszont totálisan hordozhatatlanok...
A dátumaritmetika (adott dátum +/- x nap) témára legutóbb awk-ban alkottam valamit, most meg "hány napos volt az előző hónap" című kérdést veséztem Excel-ben... Baromi randa lett, de műx :-/
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy a find standard ezköz, csak semmi köze az adott problémához. Az egy más probléma kapcsán jött fel, amit maszili vetett fel, így fogalmazzunk úgy, hogy enyhén offtopic...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Jó, akkor maradjunk a date parancsnál :-)
- A hozzászóláshoz be kell jelentkezni
Date van win alatt.
Az persze lehet, hogy a kimenete nem oylan mint amit te szeretnél, és nem tudod parse-olni. Az egy Linuxos megoldás lenne.
Írj egy VBScriptet, ami úgy adja a dátumot ahogy te szeretnéd, az meg egy Wines megoldás lesz.
Az persze más kérdés, kinek melyik kényelmesebb. Azért komolyabb scripteket ilyen Linuxos trükközésekkel nehéz, illetve csúnya megoldani, mert nem a megszokott programozási gondolkodásmódot igényli.
Nem véletlen, hogy egyre többen használnak ilyen dolgokra pythont meg perlt meg hasonló nyelveket bash+Awk scriptek helyett.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Tehát a "tegnap" parancsot, mely Linuxon a "date --yesterday" nagyjából, és más UNIX-ok date parancsát (POSIX ugye...) használva sem túl problémás, elő kell venni egy plusz értelmezőt (mert a shell-je olyan amilyen), és azzal lefuttatni egy Windows-only programot, amit meg is köll írni... A rugalmas parancsok használata nekem jobban "bejön", mint az írjunk mindenre programot... Ötlet... A fontosabb UNIX utility-ket írassuk/írjuk meg VBScriptben :-)) Kezdjük pl. az ls VBScriptes implementálásával :-)) (Shell scriptelésnél szinte "kötelező" a diákkal megíratni a dir parancsot...)
- A hozzászóláshoz be kell jelentkezni
:)
Én nem mondtam, hogy szerintem jó, hogy mindent nekem kell megírni.
Mellesleg van date --tegnapelőtt-előtt, vagy date --kéthétteltegnapelőtt? Mert amint kitalálok egy olyat ami nincs, máris jön a parse-olás.
Pl szerintem nem szép megoldás, mikor az ls -l kimenetét awk-val kell parse-olnom, mert nekem csak bizonyos oszlopok kellenek...
Milyen jó volna valalmi form string megadási lehetőség. Különösen, ha pl space-ek is vannak a filenévben.
Sokszor van hasonló gondom, mikor egy programozósabb scriptnyelvvel szépen meg tudnám oldani, bash alatt meg megy a gányolás.
Persze sokszor meg írok egy 4 soros scriptet, és eszembe nem jut egy python-t indítani.
Mindennek megvannak a maga erősségei, illetve gyengéi.
Nekem csak az olyan kijelentésekkel van gondom, hogy a Win szar mert nem lehet megcsinálni. De meglehet...
A windows only program meg nem érv. Ezzel az erővel dobjunk ki minden nem *nix rendszert ugye? Vagy netán a VMS scriptek hordozhatóak?
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Mellesleg van date --tegnapelőtt-előtt, vagy date --kéthétteltegnapelőtt?
date -d '2 days ago yesterday'
date -d '2 weeks 1 days ago yesterday'
:)
- A hozzászóláshoz be kell jelentkezni
8-O
Ezek se normálisak. :)
Olyan is van, hogy:
date -d '2 days ago my wedding day'? :)
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
date -d '2 days ago my wedding day'? :)
természetesen! csak kicsit más formában kell írni, pl.:
my_wedding_day='jul 8'
date -d "2 days ago $my_wedding_day"
:)
- A hozzászóláshoz be kell jelentkezni
A date --tegnapelőtt sima ügy: két date van, az egyik kiírja az EPOCH-óta eltelt másodperceket, amiből $(($(date...)-24*3600)) -zal kiszámolod a tegnapelőtti napot, majd ezt a számot odaadod egy másik date-nek, ami szééépen McFormázza :-)
Az ls -l | awk... "fonéma" teljesen normális dolog, két, a saját dolgát jól tudó szoftver együttműködése -- erről is szól a UNIX-filozófia.
- A hozzászóláshoz be kell jelentkezni
"Az ls -l | awk... "fonéma" teljesen normális dolog, két, a saját dolgát jól tudó szoftver együttműködése -- erről is szól a UNIX-filozófia."
Lehet, hogy normális, de szerintem nem szép. :)
De pont ezt próbálom mondani, hogy filozófia kérdése.
Ennek is meg vannak az előnyei és a hátrányai. Aki azt mondja, hogy a bash scriptekkel, meg awk-val mindent tökéletesen meg lehet oldani, és ennél jobb nem is kell, mert úgy tökéletes ahogy van, az vagy hülye, vagy még sose használta...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Awk-ban mindent meg lehet csinálni. Amit nem, azt Perl-ben biztosan. Amit Perl-ben sem, azt nem lehet megcsinálni :-)) Tartja a kissé kicsavart mondás...
Aki awk-ot használ az szerinted hülye, vagy legalábbis nem tud arról, hogy normálisabban is lehet csinálni... Ez érdekes, pláne, ha tudjuk, hogy az awk betűszó mit is takar: Al Aho, Peter Weinberger, és Brian Kernighan urak nevének a kezdőbetűi...
Nem tudom, mekkora awk-scripthez volt eddig szerencséd -- láttam brutál nagy dolgokat is awk-ban leprogramozva (címadatok normalizálása/adattisztítása) -- párszáz sorban, és hidd el, az írója nem volt hülye, és a megoldás ott, abban a környezetben tökéletes volt: rugalmas, jól (ön)dokumentált, a meglévő eszközökre támaszkodó, az elvárt fejlesztési-karbantartási, illetve futási szinteket teljesítette.
A shell, mint programozást segítő eszköz(!) arra szolgál, hogy az egyes részfeladatokat végző programok között egyfajta ragasztó legyen, és a szükséges változó, elágazás, illetve cikluskezelést megvalósítsa.
Ezt tudja, méghozzá igen jól.
Az awk egy lehetséges eszköz az adatok feldolgozására, ami lehet, hogy adott feladatnál tökéletes megoldást nyújt, míg egy másiknál inkább sed-et, vagy mást kell használni a (közel) optimális megoldáshoz.
- A hozzászóláshoz be kell jelentkezni
Ezzel az erővel kérhetnéd win 3.1 alatt is.
Nem azt nem kérem. :)
De az NT4 az egy szerver operációs rendszer! :) vagy mi...
A file kezelés meg egy elég régi dolog, kb a fájlrendszer
létezésével egyidős.
Sőt én is kitalálhatnám, hogy mi minden működjön egy 96-ban kiadott linuxon...
Én nem azt kértem hogy minden működjön, csak az ilyen
alapvető problémákra legyen gyári megoldás.
--
maszili
- A hozzászóláshoz be kell jelentkezni
Látom szereted a csúsztatásokat...
NT4-es filekezeléssel semmi gond nincs, legalábbis az adott probléma kapcsán.
A vita arról alakult ki, hogy mit lehet, és mit nem megoldani scriptekkel.
Magyarul arról, hogy hol erősebb a scriptezés mint eszköz: Linuxon vagy Windowson.
Mondjuk egyértelműen Linuxon, bár ez nem annyira egyértelmű, pl nem vagyok benne biztos, hogy bash, meg awk scriptekkel lehetne hálózatot turkálni (connect, send, recieve), vagy az OpenOffice-t vezérelni...
Hogy mitől lesz jó egy szerver operációs rendszer, azon lehetne vitatkozni, de maradjunk annyiban, hogy a scriptezés erőssége csak az egyik ezek közül.
Egy másik a driver ellátottság, amiben egy 96-97-es linux nem állt túl jól...
Nem vagyok egy M$ fan, de unom már az olyan hozzászólásokat, hogy az XP szar, mert ezt, meg ezt nem lehet benne megoldani, miközben meg lehet, csak az illető nem tudja hogyan.
Az meg pláne nevetséges, mikor kiderül, hogy megoldható, és akkor előkerül, hogy bezzeg NT4-en nem lehetett. Meddig megyünk így vissza, DOS 1.0-ig?
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
OOo-t miért akarsz parancssoros scriptből vezérelni? (Pythonban tán lehet...) Azok a feladatok, amihez office-jellegű tudás kell, és scripteléssel kell fűszerezni, nem biztos, hogy Linux-on OOo-val oldandó meg. Feladathoz az eszközt... Pl. 123456 csv-t xls-be konvertálni, számolt mezőkkel -- win alatt az Excelt-köll csatasorba állítani. Linux alatt meg elővenni a Perl-t, van XLS-t író meg olvasó modul, és azt használni...
- A hozzászóláshoz be kell jelentkezni
Csak egy példa volt.
Egyébként nekem már kellett volna win alatt excelt kezelni scriptből, mert a makró kevésnek bizonyúlt.
Igaz, a feladat egyszeri dolog volt, így megoldottam kézzel, és makrókkal.
De el tudok képzelni olyan feladatot, mikor OOo-val is jól jön.
Nyilván meg lehet oldani python, perl vagy stb használatával, csak ugye itt egyesek azt vetik a win szemére, hogy csak 3rd party cuccokkal lehet használni. Perl, python meg szerintem 3rd party.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
szívemből szóltál..
pl nem vagyok benne biztos, hogy bash, meg awk scriptekkel lehetne hálózatot turkálni (connect, send, recieve)
nc(1) ?
- A hozzászóláshoz be kell jelentkezni
Az is egy megoldás, sőt közvetlenül is írhatok eth0-ra de azért nem egy túl kényelmes dolog abban megegyezhetünk. :)
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
NT4-es filekezeléssel semmi gond nincs, legalábbis az adott probléma kapcsán.
Az én meglátásom szerint probléma mert nincsenek olyan eszközök amelyekkel automatizálni lehetne bizonyos fájlműveleteket. Egy oprendszer fájlrendszeréhez hozzátartoznak azok az eszközök amikkel műveleteket végezhetek az adott fájlrendszeren.
...pl nem vagyok benne biztos, hogy bash, meg awk scriptekkel lehetne hálózatot turkálni (connect, send, recieve),
Lehet hogy nincs is rá szükség mert a gyökér fáljrendszerbe azt és oda illesztek be amit csak akarok. Nincs szükség ezekre: (connect, send, recieve)
Ha vannak olyan programok amik megoldják ezeket a részproblémákat (egy posix rendszerben általában vannak) akkor megoldható az eredeti összetett probléma is.
vagy az OpenOffice-t vezérelni...
Másrészről meg a UNIX szkript egy olyan eszköz amivel meglévő programokat tudok úgy összekapcsolni hogy azok egy nagyobb, komplexeb feladatot oldjanak meg. Ha az OpenOffice fel van készítve erre akkor minden további nélkül lehet szkript által használni.
Hogy mitől lesz jó egy szerver operációs rendszer, azon lehetne vitatkozni, de maradjunk annyiban, hogy a scriptezés erőssége csak az egyik ezek közül.
Szerintem nagyon sokat számít az is hogy vannak-e és ha igen akkor milyen eszközök vannak a mindennapos használat során felmerült problémák megoldására.
Egy másik a driver ellátottság, amiben egy 96-97-es linux nem állt túl jól...
Ezt inkább az adott hardver gyártójának kellene mondani.
Írjon driver-t vagy adjon dokumentációt.
Az meg pláne nevetséges, mikor kiderül, hogy megoldható, és akkor előkerül, hogy bezzeg NT4-en nem lehetett. Meddig megyünk így vissza, DOS 1.0-ig?
Amikor szükségem lett volna rá akkor NT4-en kellett volna megoldani ezt az alapvető mindennapos feladatot. Gyári eszközök NEM álltak rendelkezésre.
Most boruljak le bílgéc előtt hogy 2006 -ban a keresőkutya mellé megcsinálták hogy mostmár látványbézik programot is lehet írni egy rutinfeladatra?
--
maszili
- A hozzászóláshoz be kell jelentkezni
Látom nem érted, hogy teljesen más szemlélet.
Ez kb olyan mintha a javan számonkérnéd, hogy nincs mutatóaritmetika.
Te azt mondod, hogy meglévő programokat akarsz összekötni, a win készitői meg azt mondják, hogy COM objekteket akarnak hivogatni.
Nem néztem utána de nyilván megoldható a find-es probléma is így.
Driverekről meg annyit, hogy engem marhára nem érdekel miért nincsenek, ha kellenének. Nincsenek és kész.
Arról megint lehetne vitatkozni, hogy mi számít alapvető mindennapos feladatnak.
De tudod mit, csak, hogy végre megnyugodjál: Az NT4 szar. Most jobb?
Mint ahogy az összes többi OS szar. Mert mindben van valami, ami nem úgy van megoldva, ahogy nekem kell, vagy nekem logikus, és mindben van valami amit nem tudok megoldani, míg egy másikban igen...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Arról megint lehetne vitatkozni, hogy mi számít alapvető mindennapos feladatnak.
Szerintem a fájlrendszerhez való hozzáférés, fájműveletek (létrehozás, törlés, keresés, stb...) elég mindennapos dolgok.
Csakhát a vindóz érában nincs kultúrája a fájlrendszerek. :)
Van egy cé, azon belül egy windows aztán abba bele van lapátolva minden. :)
Ha már fájlrendszer... akkor hogyan oldanád meg a Windows NT4 Server + SP6 alatt a fájlrendszerkvótát egy adott könyvtárstuktúrára, de szigorúan csak a gyári telepítő cd-t használva?! Talán a vidóz 2003-ban már van rá lehetőség :)
Csak azt ne mondd, hogy ez nem egy mindennapos feladat... pl. képzelj el egy fájlszervert.
--
maszili
- A hozzászóláshoz be kell jelentkezni
Komolyan mindjárt sírok....
Azt hiszem ez az a pont, ami után meddő a vita. (Sőt valójában az a pont már régen elmúlt, de most untam meg.)
Te komolyan azt állítod, hogy nincsenek olyan alapvető dolgok, amiket egy 96-os linuxszal nem lehet megoldani, NT-vel meg igen?
Ez költői kérdés, ne válaszolj. Illetve válaszolhatsz, de én nem fogok...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Te komolyan azt állítod, hogy nincsenek olyan alapvető dolgok, amiket egy 96-os linuxszal nem lehet megoldani, NT-vel meg igen?
Nem! (biztos csak elírtad a válaszod) Én azt állítom hogy bílgéc eladta szervernek a vindóz entét úgy hogy sok alapvető funkciót nem tudott. Holott korabeli UNIX-ok tudták azokat a funkciókat!
--
maszili
- A hozzászóláshoz be kell jelentkezni
A szemlélet valóban más: Win alatt klikkelj, és csináld azt, amit a fejlesztői megengednek neked, vagy programozz, hívogass com-objecteket, ha tudod, hogyan kell, eszközöd defaultban mi is van a fejlesztéshez? Jó, persze... A mindennapi fájlrendszer-adminoláshoz -és sokminden máshoz- sincs UNIX-os szemmel könnyen, logikusan használható eszköze a Windows-nak. Az egerészőbajnokok meg a ps -axu foo | grep bar | grep -v bar | sort -u dologtól kapnak heveny rekeszizomgörcsöt :-) Én meg attól, hogy egyszerű dolgoknak mily bonyolult megoldása van win alatt. Mondjuk kétféle...
- A hozzászóláshoz be kell jelentkezni
Szerintem egy script megírása már kimeríti a programozás fogalmát.
Persze ettől még senki ne jelentkezzen programozónak. :)
A win arra ment rá, hogy lehetőleg úgy lehessen megoldani az alap dolgokat, hogy ne nagyon kelljen érteni hozzá. Ehhez meg a kattingatás módszere ideális.
Bármely nem technofób ember be tud lőni egy win servert, hogy a 8 fős cégének elég legyen.
Ennek persze megvan az a hátránya, hogy bizonyos dolgokat logikátlan, bonyolult módon kell beállítani.
Mivel véges idő alatt fejlesztették a rendszert, nyilván vannak dolgok amiben nem túl erős, többek között a parancssor elég gyenge.
Persze kapcsoltak ők is, lassan kezd a dolog használható lenni, a monad elég ütősnek tűnik pl.
Persze lehet sírni, hogy a m$ szar, szemét, szar alak, mert úgy próbálja eladni a kiscéges trágyát, hogy jó az még a pentagonba is.
Hát könyörgöm, úgy mégse hirdetheti, hogy "tudjuk, hogy szar, de neked elég".
Vagy netán a RedHat, a Novell, meg a többi úgy hirdeti a linuxot, hogy "szerver operációs rendszer, felejtsd el desktopon"?
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
nem lenne muszáj bizonygatni, hogy az ilyen feladatokban a *nix környezet sokkal májerebb, mint a win (de nem csak annál, by the way), mert ezt mindenki tudja.
- A hozzászóláshoz be kell jelentkezni