Avatar billede TiHs Nybegynder
10. januar 2012 - 14:36 Der er 18 kommentarer og
1 løsning

Lave en bat fil

Hej Eksperter,

Jeg kører en msdos kommando for at konvertere nogle filer.
Dette ville være smart med en bat fil, ved bare ikke hvordan jeg kan lave den så man evt. kan manuelt indsætte variabler til konverteringen.

Koden jeg bruger:
START program.exe gammel.xml brugestilkonv.xsl -o ny.xml -xe
Det hele ligger lige nu i samme mappe.

Kan jeg lave en bat fil hvor jeg som bruger på xp kan ligge
"program.exe" hvor jeg vil, og filerne "gammel.xml , "brugestilkonv.xsl" samt få den til at danne filen på desktop hver gang ?
Avatar billede TiHs Nybegynder
10. januar 2012 - 14:49 #1
Og batfilen må meget gerne echo hvis den ikke kan åbne/finde programmet eller filerne til konverteringen.
Avatar billede claes57 Ekspert
10. januar 2012 - 15:15 #2
du kan godt have program og data liggende i forskellige mapper - men så skal du bare bare navn på kort form (fx c:\progra~1\mappe~2\program.exe) så der ikke er mellemrum i.
desktop vil på en dansk xp typisk ligge på
C:\Docume~1\[dit brugernavn]\Skrivebord
Hvis du gemmer batfilen i c:\windows, og laver frafil og tilfil som variable (og resten fast), så kan du fremover bare klikke Start/Kør og der skrive
minbat.bat frafil tilfil
og så er den ged barberet...
Men hvilke ting ligger fast, og hvad skifter fra gang til gang?
Avatar billede TiHs Nybegynder
11. januar 2012 - 09:12 #3
Prgrammet der ligger fast er program.exe

Filen der skal konverteres skifter fra gang til gang
og er filen "gammel.xml"

Filen der indeholder data til konverteringen som program.exe
skal bruge er filen brugestilkonv.xsl og ligger fast.

Files der dannes ny.xml må så gerne kunne gemmes hvor man vil
i forbindelse med konverteringen.
Avatar billede claes57 Ekspert
11. januar 2012 - 11:09 #4
fra en bat-fil skal du have en fast placering til filerne, så både gammel.xml og ny.xml skal ligge i bestemte mapper.

@echo off
cls
start c:\progra~1\mappe~2\program.exe C:\Docume~1\[dit brugernavn]\Skrivebord\%1 c:\progra~1\mappe~2\brugestilkonv.xsl -o C:\Docume~1\[dit brugernavn]\Skrivebord\%2 -xe

så 3 linjer (går her ud fra, at gammel og ny xlm ligger på skrivebordet). Gem linjerne (ret mapper til) som fx kør.bat i c:\windows. Så kan du klikke Start/kør, og skrive
kør.bat gammel.xml ny.xml
og det er så det...
Avatar billede TiHs Nybegynder
11. januar 2012 - 11:55 #5
kan man ikke skrive "dit brugernavn" på en universal måde så det tager noget ala current user ???
Avatar billede claes57 Ekspert
11. januar 2012 - 12:39 #6
det er så %username%
begge % skal med - du kan se andre navne ved at gå til en dos-boks, og der skrive
set
der er bla også userdomain og windir
Avatar billede TiHs Nybegynder
11. januar 2012 - 12:58 #7
Har skrevet følgende:

@echo off
cls
start C:\"Documents and Settings\"%username%\Desktop\konverter\program.exe C:\"Documents and Settings\"%username%\Desktop\gammel.xml c:\"Documents and Settings\"%username%\Desktop\konverter\brugestilkonverter.xsl -o c:\"Documents and Settings\"%username%\Desktop\ny.xml -xe

Det der sker når jeg kører bat.filen er at den åbner min fil som bruges af program.exe til at lave konverteringen i IE ... og der kommer ingen ny.xml fil på desktop

??
Avatar billede claes57 Ekspert
11. januar 2012 - 13:04 #8
ret fra
"Documents and Settings\"
til
Docume~1\
batfiler kan ikke håndtere mellemrum i mappe/fil navne, så det skal være kort-form.
Avatar billede TiHs Nybegynder
11. januar 2012 - 13:19 #9
Er nu rettet til:

@echo off
cls
start C:\Docume~1\%username%\Desktop\konverter\program.exe C:\Docume~1\%username%\Desktop\gammel.xml c:\Docume~1\%username%\Desktop\konverter\brugestilkonverter.xsl -o c:\Docume~1\%username%\Desktop\ny.xml -xe

åbner stadig kun brugestilkonverter.xsl op i IE....
Avatar billede claes57 Ekspert
11. januar 2012 - 14:35 #10
program.exe (hedder det virkelig det?) ligger så i en mappe direkte under skrivebord på brugeren.

prøv at fjerne ordet 'start'

fjern evt også @echo off - så kan du se den linje, som rent faktisk fyres afsted - bare for at tjekke om %username% nu også kommer med.
Avatar billede TiHs Nybegynder
11. januar 2012 - 15:15 #11
Med følgende:

cls
C:\Docume~1\%username%\Desktop\konverter\program.exe
C:\Docume~1\%username%\Desktop\gammel.xml
c:\Docume~1\%username%\Desktop\konverter\brugestilkonverter.xsl -o
c:\Docume~1\%username%\Desktop\ny.xml -xe

kan jeg hurtigt se at systemet siger:
Error occurred while parsing comand line.

Code: 0xc000068
Missing source filename.

C\Documents and Settings\user\Desktop>Docume~1\user\Desktop\gammel.xml

program.exe hedder msxsl.exe rigtigt ...
Avatar billede TiHs Nybegynder
11. januar 2012 - 15:31 #12
.. og ja, exe programmet ligger i en mappe på desktoppen som hedder konverter
Avatar billede TiHs Nybegynder
11. januar 2012 - 15:44 #13
kører iøvrigt bat.filen fra desktoppen også ....
Avatar billede claes57 Ekspert
11. januar 2012 - 16:21 #14
så ret lige fra
C:\Docume~1\%username%\Desktop\konverter\program.exe
til
C:\Docume~1\%username%\Desktop\konverter\msxsl.exe
Avatar billede hansepeter2 Praktikant
11. januar 2012 - 17:13 #15
prøv noget så simpelt som:

cd konverter
program.exe gammel.xml brugestilkonv.xsl -o ..\ny.xml -xe

pause


Det med filnavn og mellemrum. Det kan man godt, bare man sætter gåseøjne rundt om: "c:\stien til filen\et filnavn"
Avatar billede TiHs Nybegynder
11. januar 2012 - 20:19 #16
får først lige testet igen i morgen :)
Avatar billede TiHs Nybegynder
12. januar 2012 - 11:41 #17
cls
C:\Docume~1\%username%\Desktop\konverter\msxsl.exe
C:\Docume~1\%username%\Desktop\gammel.xml
c:\Docume~1\%username%\Desktop\konverter\brugestilkonverter.xsl -o
c:\Docume~1\%username%\Desktop\ny.xml -xe

pause

1) Åbner brugestilkonverter.xsl i IE
2) Error occured while parsing command line

hansepeter2: virkede ikke .....
Avatar billede hansepeter2 Praktikant
12. januar 2012 - 15:45 #18
det virker her :)

bat-filen ligger på skrivebordet?
Avatar billede TiHs Nybegynder
24. oktober 2012 - 13:03 #19
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester