---
title: "Köra bat-fil från vbs-fil"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/162122-köra-bat-fil-från-vbs-fil"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "clarkbones"
published: "2007-07-02T09:50:58.000Z"
updated: "2007-07-02T23:00:31.000Z"
replies: 7
views: 969
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/162122-köra-bat-fil-från-vbs-fil"
---

# Köra bat-fil från vbs-fil

## #1 — clarkbones, 2007-07-02T09:50Z

Hej!

Jag har en batfil som jag vill exekvera. Dock så skulle jag vilja att det visas en messagebox innan exekveringen påbörjas och en ny messagebox när exekveringen är klar. Då vet användaren att körningen är klar. Som jag fattat det kan man inte i bat-filer visas messagebox på ett enkelt sätt.

Jag tänkte då använda en vbs-fil för att visa messagebox. vbs får också starta bat-filen. Men hur får man vbs att starta bat-filen?

Permalänk: https://www.webforum.nu/p/162122

## #2 — Zaiman, 2007-07-02T10:47Z

```
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\minbatfilattköra.bat"
```

Permalänk: https://www.webforum.nu/p/1997599

## #3 — clarkbones, 2007-07-02T16:43Z

Det fungerar nästan perfekt. Körningen verkar vara asynkron, d v s min sista msgbox dyker upp direkt, innan bat-filen körts klart. 
Så här filen ut principiellt (pseudokod)

msgbox "Nu kör vi!"
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\\minbatfilattköra.bat"
msgbox "Nu är vi körda!".

Skulle alltså vilja att den sista msgboxen dök upp när körningen var klar. Är det möjligt?

Permalänk: https://www.webforum.nu/p/1997679

## #4 — colione, 2007-07-02T16:48Z

```
msgbox "Nu kör vi!"
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("C:\minbatfilattköra.bat",1,True)
msgbox "Nu är vi körda!".
```

Där det nu står 1 kan du byta mot dessa:

```
0	Hides the window and activates another window.
1	Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.
2	Activates the window and displays it as a minimized window.
3	Activates the window and displays it as a maximized window.
4	Displays a window in its most recent size and position. The active window remains active.
5	Activates the window and displays it in its current size and position.
6	Minimizes the specified window and activates the next top-level window in the Z order.
7	Displays the window as a minimized window. The active window remains active.
8	Displays the window in its current state. The active window remains active.
9	Activates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when restoring a minimized window.
10	Sets the show state based on the state of the program that started the application.
```

Permalänk: https://www.webforum.nu/p/1997680

## #5 — colione, 2007-07-02T16:54Z

Det är ordet true sist i Run-kommandot som gör att vbscriptet väntar på att exekveringen är klar.

Om det inte hjälper, kan du behöva anrop batfilen som ett kommando till cmd.exe.

typ

wshshell.run("cmd.exe c:\\blaha.vbs")

Permalänk: https://www.webforum.nu/p/1997682

## #6 — clarkbones, 2007-07-02T20:39Z

Tack, men det funkar inte riktigt.

Eftersom det första inte funkade testade jag ditt andra förslag att inkludera både cmd.exe och sökvägen. Då öppnas bara command-fönstret, men filen körs inte. Jag testade en massa varianter utan framgång. Jag har kommenterat bort några av dessa.

```
iRep=MSgBox("Körningen kan ta upp till en timme. Vill du fortsätta?", vbYesNo+ vbQuestion,"XML-Körning")
If iRep=vbYes Then
	Set WshShell = WScript.CreateObject("WScript.Shell")
	'WshShell.Run "cmd.exe C:\apa.bat",1 ,True 
	'WshShell.Run "cmd.exe ""C:\apa.bat""",1 ,True

	WshShell.Run "cmd.exe ""c:\apa.bat""" ,1 ,True
	MsgboX "Körningen är genomförd!",vbOK + vbInformation,"XML-körning"
End If
```

Permalänk: https://www.webforum.nu/p/1997738

## #7 — colione, 2007-07-02T20:56Z

foo.vbs:

```
iRep=MSgBox("Körningen kan ta upp till en timme. Vill du fortsätta?", vbYesNo+ vbQuestion,"XML-Körning")
If iRep=vbYes Then
	Set WshShell = WScript.CreateObject("WScript.Shell")
	WshShell.Run "cmd.exe /c c:\apa.bat" ,1 ,True
	MsgboX "Körningen är genomförd!",vbOK + vbInformation,"XML-körning"
End If
```

apa.bat:

```
echo running
pause
```

Permalänk: https://www.webforum.nu/p/1997741

## #8 — clarkbones, 2007-07-02T23:00Z

STORT TACK!

Permalänk: https://www.webforum.nu/p/1997772

---

Tråden på webben: https://www.webforum.nu/amne/programmering/162122-köra-bat-fil-från-vbs-fil
