Question: In Windows, how can I display the startup items from using a batch file?

Answer: 
If you can use PowerShell, here is a bit of code that uses [AUTORUNSC](http://live.sysinternals.com/autorunsc.exe).

```
$autoruns = [xml](AUTORUNSC -x 2>$null)

foreach ($item in $autoruns.autoruns.item)
{
  If ($item.Description.Length -gt 0)
  { Write-Output $item.Description.Trim() }
  Else
  { Write-Output "n/a"}
  Write-Output $item.ItemName.Trim()
  Write-Output $item.imagepath.Trim()
  "---------------------------------------"
}

```

**EDIT**: The `-x` parameter on AUTORUNSC makes it output XML.
As already answered, the startup items are a combination of startup items for "All Users" and the current user. The startup items can either be placed as links in the Start Menu Startup folders, or as registry entries.

For the startup folders, you have already been given the paths in Pax' answer, but do be aware that the paths will be different in non-english versions of Windows. 

For the registry, I don't think you can query it using batch script only. It can be done from PowerShell script, if that is an option. Otherwise, I think the easiest way to accomplish the task would be to make a small utility program for the task. (It would be easy to do in one of the .NET languages, or you can do it in C if you cannot rely on the .NET Framework being present).

The Registry entries can be found here, for All Users:

```
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

```

And for the current user:

```
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

```

Finally, be aware that the registry also contains the RunOnce key; which contains entries that only should be run once at startup, and then be removed.