.bat copy

Status
Niet open voor verdere reacties.

basdebaas

Gebruiker
Lid geworden
17 nov 2008
Berichten
116
hallo,

ik wil graag via een batch file een back-up van een bestand maken(kopieren).
ik weet niet precies hoe ik dit moet doen en hoopte dat iemand mij hiermee kon helpen, ik ervaring met javascript,php en html dus ik weet al wel een beetje van programmeren af.
wat ik eigenlijk will is:

controleren of outlook.exe loopt als proces
zo ja; copy outlook.pst naar andere locatie
zo nee; vraag outlook af te sluiten en probeer dan opnieuw te kopieren.
exit;

alvast bedankt,

bas
 
Code:
@echo off
:loop
qprocess outlook.exe
if errorlevel 1 echo 1 goto outlookruns
echo copy outlookfile
goto end

:outlookruns
pause Outlook is actief, svp afsluiten
goto loop
:end
weet je zeker dat dit het goede script is, want volgens mij werkt hij niet helemaal, hij voert :outlookruns namelijk nooit uit.
 
Welke versie van Windows heb je? Getest op XPP en daar gaat ie prima. Als je een andere Windows versie hebt kun je natuurlijk even kijken of bij jou het programma qprocess ook staat
 
Hier is de goede:
Code:
@echo off
:loop
qprocess outlook.exe
if errorlevel 1 goto copyfile
pause Outlook is actief, svp afsluiten
goto loop

:copyfile
echo copy outlookfile
:end
 
volgens mij gaat er iets niet goed in die if
Code:
@echo off
:loop
qprocess outlook.exe
if errorlevel 1 goto outlookruns
echo copy outlookfile
pause
goto end

:outlookruns
echo Outlook is actief, svp afsluiten
echo %errorlevel%
pause
goto loop
:end

ik krijg nu steeds die :outlookruns uitgevoerd met de errorlevel waarde 1 als outlook niet achtief is.
 
Vandaar de aanpassing :)
qprocess geeft errorlevel 0 als process draait, en errorlevel 1 als ie niet draait. Probleem met DOS is dat een errolevel 1 ook betekent dat er een errorlevel 0 is.
 
ow haha, had de verkeerde te pakken:P
het werkt nu, bedankt
 
nog 1 vraagje, kan ik die meldingen weg halen van: oulook.exe is niet actief, ik dacht dat dat met @echo off werdt gedaan. maar kennelijk niet/
 
Tuurlijk, echo [bericht] laat het bericht zien, pause [bericht] laat het bericht zien en wacht op een toetsaanslag. In principe kun je die hele pause weghalen, maar dan gaat die loop wel wat resources opsnoepen. Je zou dan even moeten zoeken naar een batch-enhancer tool die bijvoorbeeld een sleep(5000) kan doen.
 
ik bedoel meer het gene dat de promptbox zelf maakt, als je de proces informatie opvraagt krijg je allerlei dingen te zien zoals:
gebruikersnaam Sessienaam Id

dat wil ik eigenlijk weg hebben
 
Output naar null device sturen:

qprocess outlook.exe > nul
 
ok, volgens mij werkt hij helemaal nu, hij doet in ieder geval alles wat ik wil, dus dat is mooi. dit is wat ik nu heb, bedankt.
Code:
@echo off
:loop1
set /p var1=wil je een back-up maken van outlook.pst?(J/N): 
if "%var1%"=="j" goto loop2
exit

:loop2
color 2b
qprocess outlook.exe > nul
if errorlevel 1 goto loop3
echo.
echo outlook is nog actief, svp afsluiten om de back-up voor te zetten.
pause
goto loop2

:loop3
color 1a
copy C:\Users\Bas\AppData\Local\Microsoft\Outlook\Outlook.pst C:\Users\Bas\batch\outlookbu\outlook-bu.pst
echo.
set /p var2=de back-up is voltooid, wil je outlook nu opstarten?(J): 
if "%var2%"=="j" goto opstartenol
exit

:opstartenol
start outlook.exe
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan