» »

batch fajl iz txt

batch fajl iz txt

«
1
2

Blisk ::

Glede na to, da se mučim že nekaj časa z arhiviranjem, bi tokrat probal z bat fajlom na drugačen način.
Samo ne vem kako?
Uspel sem pač narediti en txt log fajl, kjer si zapomni zadnjega logiranega uporabnika.

echo "Logon Date:%date%,Logon Time:%time%,Computer Name:%computername%,User Name:%username%,Server Name:%logonserver%" >> c:\LOGON.TXT
Zdaj pa bi rabil, batch datoteko, da mi iz tega LOGON.TXT fajla prebere
User Name:Janko
in ga uporabi v naslednji vrstici
robocopy c:\users\Janko\Desktop Z:\users\Janko\Desktop /e /fft /w:1 /r:1 /ns /nc /nfl /ndl /np /copy:dt

iskal sem na netu rešitve samo mi nekak ne deluje zadeva.
Hvala za pomoč

sas084 ::

En simpl primer ki ti izpiše username:

SET filename=LOGON.TXT

FOR /f "delims=, tokens=4" %%a in (%filename%) do (
	FOR /f "delims=: tokens=2" %%b in ("%%a") do (
		echo %%b
	)
)


Greš čez vse vrstice v fajlu, ter vrstico splitaš na tokene po vejici, v tvojem primeru rabiš samo četrti token (User Name:%username%). Potem splitaš token po : in vzameš samo drugi token, kar je tvoj username.

Blisk ::

Hvala to mi je ravnokar uspelo narediti.
Zdaj rabim samo še, da mi pobriše iz tega LOGON.txt vse razen zadnje vrstice, kako to naredim.
če je vrstica amo ena ne zbriše nič.

sas084 ::

Neki podobno temu:

SET filename=LOGON.TXT
SET newfilename=%filename%.bak
SET count=0

FOR /f "delims=, tokens=4" %%a in (%filename%) do (
	SET /a count += 1
    FOR /f "delims=: tokens=2" %%b in ("%%a") do (
        echo %%b
    )
)

SET /a count -= 1

IF %count% GTR 1 (
	echo Count:%count%
	more +%count% %filename% > %newfilename%
	move /Y %newfilename% %filename%
)

Blisk ::

dela super, hvala
zdaj še samo ugotavlajm, zakaj se zadeve na izvrši ob zagonu sistema :/
oz. ob določeni uri..

sas084 ::

Mislm da je najbol simpl da si nardiš en Scheduled Tasks ki ti bo poganjal tvoj batch file.

Blisk ::

sas084 je izjavil:

Mislm da je najbol simpl da si nardiš en Scheduled Tasks ki ti bo poganjal tvoj batch file.


saj sem pa ne dela, ni mi jasno zakaj ga task scheduler ne požene, ker na roke dela vedno

ABX ::

OS?

Če je to Win7 nastavi "Run only when user is logged on" in triggers "at log on" in "any user"
Vaša inštalacija je uspešno spodletela!

Zgodovina sprememb…

  • spremenilo: ABX ()

Blisk ::

ABX je izjavil:

OS?

Če je to Win7 nastavi "Run only when user is logged on" in triggers "at log on" in "any user"

ravno v tem je poanta da mora delat, ko ni user logged in pač pa ob system startup, nastavljeno imam pa da poganja batch file system
je pa windows 7

sas084 je izjavil:

Mislm da je najbol simpl da si nardiš en Scheduled Tasks ki ti bo poganjal tvoj batch file.

v bistvu ne dela, ker sem ravno opazil, da dodaja nove vrstice v txt fajl.

Zgodovina sprememb…

  • spremenil: Blisk ()

ABX ::

Po moje brez uporabnika ti ne bo delalo kot si ti želiš, ker brez prijave ne boš imel določenih info.
Vaša inštalacija je uspešno spodletela!

sas084 ::

Zdej da ti Schedular ne zažene batcha so lahko krive pravice od userja, s katerim Schedular poganja batch. Glede same batch skripte sm jo pa sprobu in mene dela brez problema. Če lahko prlep skripto da bomo vidli kod je problem.

Blisk ::

sas084 je izjavil:

Zdej da ti Schedular ne zažene batcha so lahko krive pravice od userja, s katerim Schedular poganja batch. Glede same batch skripte sm jo pa sprobu in mene dela brez problema. Če lahko prlep skripto da bomo vidli kod je problem.

A to skripto zgoraj si probal?
Da zapiše zadnjega logiranega userja v LOGON.txt in vedno je samo en user not v tej txt datoteki?
Bom še enkrat preizkusil.

Kar se tiče zaganjanja batch datoteke, vse drugo dela, pa se mi zaganja ene 5 batch datotek, pa vse dela BP.
Samo robocopy pa ne dela, pa lahko na galvo skačem ko ne dela.
v task schedulerju zaganja zadevo system uporabnik in sem probal tudi z administratorjem pa ne dela.
Sicer sam bat fajl dela super, če ga poženem na roke.
Moram probat še zadnjo možnost za tole, da se robocopy zažene ob startu in potem je z robocopy nastavljeno kdaj se začne arhiviranje, mogoče bo to delovalo.... Sicer dvomim, ker sem nastavil v schedulerju, da se požene at startup, pa tudi ne dela.

Sicer pa je tole moj bat fajl, za kopiranje, ki bi se moral pognati s task schedulerjem pa ne dela. Z dvojim klikom pa dela ok.

FOR /F "delims=~" %%f in (c:\LOGON.txt) DO net use Z:\ \\mojserver\Uporabniki\%%f
FOR /F "delims=~" %%f in (c:\LOGON.txt) DO cd c:\Users\%%f
robocopy Documents Z:\Users\Documents /e /fft /w:1 /r:1 /ns /nc /nfl /ndl /np /copy:dt
FOR /F "delims=~" %%f in (c:\LOGON.txt) DO cd c:\Users\%%f
robocopy Desktop Z:\Users\Desktop /e /fft /w:1 /r:1 /ns /nc /nfl /ndl /np /copy:dt
FOR /F "delims=~" %%f in (c:\LOGON.txt) DO cd c:\Users\%%f
robocopy AppData\Local\Microsoft\Outlook Z:\Users\AppData\Local\Microsoft\Outlook /e /fft /w:1 /r:1 /ns /nc /nfl /ndl /np /copy:dt

Zgodovina sprememb…

  • spremenil: Blisk ()

sas084 ::

Jst sm sprobu funkcjonalnost da ti iz LOGON.txt pobriše vse razn zadnje vrstice (more + move ukaz) in mene dela skripta uredu. Probi pri robocopy uporabit /LOG opcijo, mogoče se bo iz loga dalo razbrat kje je problem.

Blisk ::

bom probal še z log om.
pri skripti sem dodal samo tole na začetek, se pravi, bi moralo v txt fajl zapisat uporabniško ime, potem pa tvoja skripta pobriše vse razen zadnje.
echo %username% >> c:\LOGON.TXT

b3D_950 ::

Arhiviranje lahko delaš takrat, ko se user odjavi (poglej group policy - gpedit.msc pod shutdown/logoff scripts) oz. izklaplja računalnik.

Hayabusa ::

Glede task schedulerja in nedelovanja:
googlaj "run process as service".

Blisk ::

b3D_950 je izjavil:

Arhiviranje lahko delaš takrat, ko se user odjavi (poglej group policy - gpedit.msc pod shutdown/logoff scripts) oz. izklaplja računalnik.

tudi to sem probal pa ne dela, sicer za silo je funkcija ok, ampak problem postane pri laptopih, ne more user čakat 20 minut, naprimer da se naredi backup, da lahko potem vzame laptop in gre domov.
robocopy ne dela v nobene primeru, ko ga požene sistem windowsa, samo, ko ga poženem z dvojnim klikom.

b3D_950 ::

xcopy /e /d /y "x:" "y:"

robocopy moraš dodatno namestit, ker mislim, da ni po defaultu?
Pa uporabi full path do vseh datotek, ki jih maš v batch fajlu.

C:\windows\system32\robocopy.exe c:\users\Janko\Desktop Z:\users\Janko\Desktop /e /fft /w:1 /r:1 /ns /nc /nfl /ndl /np /copy:dt

Za laptope boš verjetno dodal kakšn pogoj, da se zažene samo takrat, ko je priključen na mrežo v službi oziroma kjerkoli že imaš to.

Blisk ::

Kako čem uporabit full path, če ne vem imena uporabnika?
robocopy je po defoltu na windowsih 7.
Sem pa našel napako piše v logih, samo ne vem zakaj to ne dela.
ERROR 3 (0x000000003) Creating destination directory Z:\Users Navedene poti ni bilo mogoče najti.
Očitno mapiranje na Z ne deluje
FOR /F "delims=~" %%f in (c:\LOGON.txt) DO net use Z:\ \\mojserver\Uporabniki\%%f

sas084 ::

Glede na to, da se ti Z mapira normalno če batch poganjaš v okvirju trenutnega userja, ne dela pa če poganjaš iz schedulerja, potem sklepam da more bit problem s pravicami. Probi zraven mapiranja dodat opcijo /USER:domena\uporabnik oz. izpiš return code od "net use" komande, mogoče se bo dalo ki iz tega pogruntat.

Blisk ::

Če dam tole /USER:domena\uporabnik mi napiše napačen parameter.
Sicer pa ja ugotavljam, da je problem s pravicami.
Kakšna ideja kaj bi moral nastaviti v task schedulerju, da bi bile pravice prave in bi delovalo.

Blisk ::

Mislim da zdaj bo delalo, ker sem dal kot uporabnika v task schedulerju "Users"

sas084 ::

Jst upam da bo delalo, čeprov sem bral da "net use" izvede mapiranje v kontekstu trenutno prijavljenega uporabnika če mu specifično ne določiš uporabnika preko /user opcije. Tko da načeloma bo reč delala če bo user logiran, če pa ne bo je pa vprašanje, tud če batch poganjaš kot uporabnik skupine "Users".

Blisk ::

Zadevo poizkušam narediti takole.
v logon.txt se zapiše zadnji prijavljen uporabnik.
bat fajl prebere tega uporabnika in zmapira Z: disk na tega uporabnika.
robocopy pa se zažene z administratorskim uporabnikom in kopira datoteke iz uporabnika, ki je zadnji v logon.txt na zmapiran disk.

Sicer načeloma sem prišel do polovice, če ma kdo kako idejo pa prosim....

Blisk ::

skušam najprej zmapirat disk z uporabnikom iz logon.txt
pa mi napiše napako
FOR /F "delims=~" %%f in (c:\LOGON.txt) DO net use Z:\ \\mojserver\Uporabniki\%%f

napaka
%%f was unexpected at this time

kaj delam narobe?

sas084 ::

Jst v tej vrstici ne vidm napake, mogoče jo maš v prejšnih pa interpreter zateži šele pri tej, poglej par vrstic višje.

Blisk ::

sas084 je izjavil:

Jst v tej vrstici ne vidm napake, mogoče jo maš v prejšnih pa interpreter zateži šele pri tej, poglej par vrstic višje.

sem preveril, pa sem samo to vrstico pognal v cmdju in se je pojavila napaka

Malajlo ::

Zakaj se sploh matraš s parsanjem usernamea iz fajla? Na logoff daš skripto, ki ji dodaš parameter %username% pa je.

Blisk ::

Malajlo je izjavil:

Zakaj se sploh matraš s parsanjem usernamea iz fajla? Na logoff daš skripto, ki ji dodaš parameter %username% pa je.

ker bi rad, da se arhivira ponoči in ne ob logoff, ker so nekateri nestrpni in ne počakajo, da se zadeva zarhivira do konca in vzamejo laptop in grejo.

Malajlo ::

Kako pa arhiviraš ponoči, če je odnesel laptopa?
Imaš pa tudi možnost v rt kreirati jobe v scheduler. Ob logoffu pač kreiraš job, ki se zažene ob določeni uri. Lahko bi tudi tako naredil, da poganjaš skripte v nekem folderju. Ko jo naredi, jo briše (logoff skripta pa jo spet naredi).
Nekako tako imam narejen restart spoolerja za navadne userje. Vsak user lahko pobriše nek faajl. Scheduler pa zažene restarz servisa, če fajla ni in po startu tja vrže fajl nazaj. Tako ni nekih zajebancij s pravicami.

Blisk ::

to je pa dobra ideja, da sproti dela skripto.
Samo pridem dejansko do istega problema kot zdaj ko to delam prek task schedulerja.
problem je, če poženem task scheduler kot "users" zadeva deluje, če ga poženem kot "system" ne deluje.
Ne morem pa preko GPO poslat uporabnikom, task scheduler, če je nastavljen uporabnik "users" kot tisti, ki zaganja task scheduler.
Če je kot system potem pa gre.
Bom še malo experimentiral, če ma kdo kako idejo, pa naj sporoči.

Zaenkrat imam tako narejeno, da se arhiv naredi na logoff.

Blisk ::

Ok, če mi lahko kdo pomaga pri skripti mi nikakor ne gre.
Rad bi, da mi iz logon.txt datoteke prebere USER in ga da v skripto na tale mesta pri robocopy.
USER se mi že zapiše v logon.txt ob odjavi.

c:\windows\system32\cmd.exe /c "robocopy C:\Users\USER\Documents \\mojserver\Arhiv\Users\USER\Documents /e /fft /w:1 /r:1 /ns /nc /nfl /ndl /np /copy:dt /log:c:\backup.txt"

Sicer ponavadi vse skripte tudi na lokalnem računalniku poganjam iz \\mojserver\skupno\skripta.bat in stvar za ostale zadeve deluje.

zdaj če je boilje, da se ta skripta poganja iz lokalnega pcja, kam jo dam da bo to delovalo tako, da bo lahko uporabnik SYSTEm pognal ta bat fajl?

Malajlo ::

V %systemroot%\temp (ali pa naredi folder Skripte). Pravice daj Everyone FullAccess. Ali pa na serverju preveri pravice za spodaj opisano metodo.

Za scehduler, naredi novega userja (jaz servisne accounte kreiram po principu svc.opravilo; torej, svc.sql, svc.backup). S tem accountom potem poganjaj task. Pa ne pozabi imeti nastavljeno, da se zaganja Run whatever logged on...

Blisk ::

delati mora z USER NOT LOGGED IN. :)

sas084 ::

Jst bi pač naredu eno mapo, kjer bi v acl-u nastavu pravice za SYSTEM account in iz njega poganju batch skripto. Drugač pa je tko kot je Malajlo reku, %systemroot% mislm da ma po defaultu SYSTEM account nastavljen v aclu, vse podmape pa majo po defaultu dedovan acl, tko da bi zadeva mogla delat pod %systemroot%.

Blisk ::

sas084 je izjavil:

Jst bi pač naredu eno mapo, kjer bi v acl-u nastavu pravice za SYSTEM account in iz njega poganju batch skripto. Drugač pa je tko kot je Malajlo reku, %systemroot% mislm da ma po defaultu SYSTEM account nastavljen v aclu, vse podmape pa majo po defaultu dedovan acl, tko da bi zadeva mogla delat pod %systemroot%.

gledal sem pravice na mapah in vse imajo pravice tudi uporabnika SYSTEM.

sysstemroot misliš uporabnka?

sas084 ::

Ne, %systemroot% je root mapa od sistema (recimo c:\windows), tam ma SYSTEM user po defaultu pravice če se ne motm. Tko da če boš skripto poganju iz tle oz. iz poddirektorijev (c:\windows\temp, c:\windows\Skripte, ...) nebi smel met problemov s pravicami za SYSTEM uporabnika.

Blisk ::

saj to sem naredil, batch fajl sem dal v c:\windows\setup
pa ni delovalo prav tako, da se poganja v c:\windows\system32 pa tudi ni delovalo.
problem je samo, ker nekak ne znam urediti, da mi bere uporabnika iz txt fajla in ga namesti na vse poti za kopiranje.

sas084 ::

Mislm da nimaš ti problema s samim zagonom batch fajla s SYSTEM userjem (mogoče se motm), ampak z mapiranjem Z diska. Mislm da po defaultu "net use" vzame trenuten username, se proba avtenticirat z serverjem in če je vse uredu zmapira share. Zato tebe use normalno dela če ti zaganjaš batch iz cmd-ja (uporab se tvoj username za avtentikacijo), ko pa zaganjaš job pa se SYSTEM account ne avtenticira s serverjem in tud mapiranje pade (kar verjetno vidš tud iz logov da robocopy ne dobi poti do Z:\... oz kšna podobna napaka). Ker branje iz txt-ja nebi smelo bit problem ker SYSTEM ma pravice branja pod c:\windows.

Blisk ::

V bistvu je problem z source ker javi napako 0003 sour path not found pa potem napiše c:\users\miha \Desktop
tudi ko poženem zadevo iz cmdja, zdaj ne vem ali ga moti ker naredi tist presledek vmes ali kaj je narobe?
FOR /F "tokens=1 delims=," %f in (c:\LOGON.txt) DO robocopy "c:\Users\%f\Desktop" "\\mojserver\%f\Arhiva\Users\Desktop /e /w:1 /r:1 /ns /nc /nfl /ndl /np /COPYALL /log:c:\backup.txt

pa ne mapiram diska, ker robocopy ne podpira mapiranih diskov, zato sem dal celo pot.
pa uporabnik administrator, če poženem iz cmdja kot on ima vse pravice tudi system uporabnik

Zgodovina sprememb…

  • spremenil: Blisk ()

b3D_950 ::

Presledek ne more bit, če ne obstaja. Poglej kakšn encoding ima LOGON.txt, mogoče vsebuje kakšne čudne znake. Sicer pa testiraj še z ntbackup ali pa vbs skripte ali pa xcopy:

xcopy /E /D /Y "c:\" "\\1.1.1.1\_%COMPUTERNAME%\"


set strSource=C:\User\XXY
set strDestination=\\10.10.10.10\backup
set BackupName=XXY
set FullMonthly=01 

FOR /f "tokens=1-4 delims=/-. " %%G IN ('date /t') DO (call :s_fixdate %%G %%H %%I %%J)
   goto :s_print_the_date
   
:s_fixdate
   if "%1:~0,1%" GTR "9" shift
   FOR /f "skip=1 tokens=2-4 delims=(-)" %%G IN ('echo.^|date') DO (
       set %%G=%1&set %%H=%2&set %%I=%3)
   goto :eof

:s_print_the_date
set monthday=%dd%

set BackupPlan=Daily
if %monthday%==%FullMonthly% set BackupPlan=Monthly


set backuptype=INCREMENTAL
if %monthday%==%FullMonthly% set backuptype=INCREMENTAL


#zbrisi stare backupe
#wscript deleteDaily.vbs
#wscript deleteMonthly.vbs

for /f "tokens=2-4 delims= " %%a in ("%date%") do set today=%%c-%%b-%%a

Echo Date                     : %today%
Echo Time                     : %time%

if not exist %strDestination%\%BackupPlan%\%BackupName% md %strDestination%\%backupplan%\%BackupName%

C:\WINDOWS\system32\ntbackup.exe backup "@%strSource%\Backup_%BackupName%.bks" /n "Backup %backupplan% (%BackupName%).bkf" /d "Backup %BackupPlan% (%BackupName%)" /v:yes /r:no /rs:no /hc:off /m %backuptype% /j "Backup %BackupPlan% (%backupmame%)" /l:s /f "%strDestination%\%BackupPlan%\%BackupName%\%today%_%BackupName%.bkf

sas084 ::

Aja si spremenu skripto, ja prou možno da ga zajebava presledk. Probi trimmat username prej ku zaženeš robocopy.

Blisk ::

b3D_950 je izjavil:

Presledek ne more bit, če ne obstaja. Poglej kakšn encoding ima LOGON.txt, mogoče vsebuje kakšne čudne znake. Sicer pa testiraj še z ntbackup ali pa vbs skripte ali pa xcopy:

xcopy /E /D /Y "c:\" "\\1.1.1.1\_%COMPUTERNAME%\"


set strSource=C:\User\XXY
set strDestination=\\10.10.10.10\backup
set BackupName=XXY
set FullMonthly=01

FOR /f "tokens=1-4 delims=/-. " %%G IN ('date /t') DO (call :s_fixdate %%G %%H %%I %%J)
goto :s_print_the_date

:s_fixdate
if "%1:~0,1%" GTR "9" shift
FOR /f "skip=1 tokens=2-4 delims=(-)" %%G IN ('echo.^|date') DO (
set %%G=%1&set %%H=%2&set %%I=%3)
goto :eof

:s_print_the_date
set monthday=%dd%

set BackupPlan=Daily
if %monthday%==%FullMonthly% set BackupPlan=Monthly


set backuptype=INCREMENTAL
if %monthday%==%FullMonthly% set backuptype=INCREMENTAL


#zbrisi stare backupe
#wscript deleteDaily.vbs
#wscript deleteMonthly.vbs

for /f "tokens=2-4 delims= " %%a in ("%date%") do set today=%%c-%%b-%%a

Echo Date : %today%
Echo Time : %time%

if not exist %strDestination%\%BackupPlan%\%BackupName% md %strDestination%\%backupplan%\%BackupName%

C:\WINDOWS\system32\ntbackup.exe backup "@%strSource%\Backup_%BackupName%.bks" /n "Backup %backupplan% (%BackupName%).bkf" /d "Backup %BackupPlan% (%BackupName%)" /v:yes /r:no /rs:no /hc:off /m %backuptype% /j "Backup %BackupPlan% (%backupmame%)" /l:s /f "%strDestination%\%BackupPlan%\%BackupName%\%today%_%BackupName%.bkf



ja res je šele zdaj sem opazil, da mi v logon.txt naredi po Uporabniku še presledek
za logon.txt imam tole v skripti in naredi presledek
echo %username% >> c:\LOGON.TXT

sas084 ::

Uporab brez presledka pri echo:

echo %username%>> c:\LOGON.TXT

Blisk ::

sas084 je izjavil:

Uporab brez presledka pri echo:


echo %username%>> c:\LOGON.TXT

sem spremenil zdaj ni več presledka, samo še vedno nekaj ne dela, ker tudi log fajn od robocopa je prazen

samo da je pa zdaj problem, ker imena shranjuje enega zraven drugega v log faj.
naprimer
MihaMihaMiha
čeprav naj bi brisal vse stare s tole skripto
echo %username%>> c:\LOGON.TXT

SET filename=c:\LOGON.TXT
SET newfilename=%filename%.bak
SET count=0

FOR /f "delims=, tokens=4" %%a in (%filename%) do (
SET /a count += 1
FOR /f "delims=: tokens=2" %%b in ("%%a") do (
echo %%b
)
)

SET /a count -= 1

IF %count% GTR 1 (
echo Count:%count%
more +%count% %filename% > %newfilename%
move /Y %newfilename% %filename%
)

Zgodovina sprememb…

  • spremenil: Blisk ()

Blisk ::

no uspel sem nekak prit do tja, da če zadevo poženem pobere zadnjega userja iz txt fajla in začne kopirat, sam zdaj pa vidim pod logfajlom od robocopy, da je našel fajle, ampak da nič ni kopiral vse je skipped......

sas084 ::

Skripta je spisana za tvoj prvi primer ko si ga nevedu na začetku:
echo "Logon Date:%date%,Logon Time:%time%,Computer Name:%computername%,User Name:%username%,Server Name:%logonserver%" >> c:\LOGON.TXT


Če maš samo %username% v fajlu, potem uporab samo:

FOR /f %%a in (%filename%) do (
	SET /a count += 1
)

SET /a count -= 1

IF %count% GTR 1 (
	more +%count% %filename% > %newfilename%
	move /Y %newfilename% %filename%
)

sas084 ::

Blisk je izjavil:

no uspel sem nekak prit do tja, da če zadevo poženem pobere zadnjega userja iz txt fajla in začne kopirat, sam zdaj pa vidim pod logfajlom od robocopy, da je našel fajle, ampak da nič ni kopiral vse je skipped......


Glede tega ti pa ne znam glih svetovat ker se nism nkol igral z njim. Tu piše, da po defaultu kopira fajle ki so različnih velikosti al pa imajo različn timestamp. Probi uporabit različne opcije, kkr vidm jih maš ceu kup.

Blisk ::

V bistvu zadeva zdaj deluje.
Računalnik se prižge se zarhivira in se ugasne.
Stvar je v tem, da se mora ta batch fajl poganjat kot glavni administrator, da ima dostop do vseh lokalnih map in map na serverju.
Da je treba temu administratorju omogočit, da lahko poganja batch fajle v GPO na serverju.
se pravi z zgornjim batch fajlom se naredi na Cju txt datoteka z zadnjim uporabnikom
in potem se tale batch fajl nastavi v task schedulerju, da se poganja kot glavni administrator
%SystemRoot%\system32\cmd.exe /c "FOR /F "tokens=1 delims=," %%f in (c:\LOGON.txt) DO robocopy "C:\Users\%%f\Documents" "\\mojserver\Arhiva\%%f\Users\Documents" /e /w:1 /r:1 /ns /nc /nfl /ndl /np /FFT /COPY:DT /log:c:\backup.txt"

sas084 je izjavil:

Skripta je spisana za tvoj prvi primer ko si ga nevedu na začetku:

echo "Logon Date:%date%,Logon Time:%time%,Computer Name:%computername%,User Name:%username%,Server Name:%logonserver%" >> c:\LOGON.TXT


Če maš samo %username% v fajlu, potem uporab samo:


FOR /f %%a in (%filename%) do (
SET /a count += 1
)

SET /a count -= 1

IF %count% GTR 1 (
more +%count% %filename% > %newfilename%
move /Y %newfilename% %filename%
)


tole pa na žalsot še vedno ne dela....

Zgodovina sprememb…

  • spremenil: Blisk ()

sas084 ::

Nevem točno kšno funkcjonalnost rabiš. Ta koda ka sm ti jo napisu pobriše use userje iz fajla razn zadnjega, ob predpostavki da maš userje brez presledkov in vsakega v svoji vrstici. Kako točno maš txt fajl narejen?
«
1
2


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

program za pomoč pri tiskanju 200+pdf dokumentov

Oddelek: Pomoč in nasveti
252070 (1122) HotBurek
»

batch skripta požene prevečkrat

Oddelek: Programiranje
171922 (757) krneki0001
»

[Win Batch] Skripta za ustvarjanje datoteke

Oddelek: Programiranje
51019 (823) sas084
»

robocopy

Oddelek: Programska oprema
242611 (2050) driver_x
»

[bat datoteke] Trenutni datum in ura

Oddelek: Programiranje
112331 (2088) darkolord

Več podobnih tem