# Creating a password protected batch file with a batch file



## Matt Pwns (Jul 2, 2010)

Hey everyone, I'm fairly new at programming at everything, but I'm trying to learn, so bear with me.

I created a batch file, for fun, to shut down a computer in 60 seconds, but creates a text file and a second password protected batch file to abort the shutdown.

This is the code I've used.


```
@ECHO OFF
MODE CON: COLS=70 LINES=6
TITLE Shutdown - By Matt
START C:\Windows\System32\shutdown.exe -s -t 60 -c "Shutting Down"
ECHO Warning! Your computer will shutdown in 60 seconds! > shutdown.txt
ECHO. >> shutdown.txt
ECHO To abort, run the "abort" batch file on your desktop. >> shutdown.txt
ECHO @echo off > abort.bat
ECHO MODE CON: COLS=20 LINES=5 >> abort.bat
ECHO title abort >> abort.bat
ECHO color 9B >> abort.bat
ECHO :Start >> abort.bat
ECHO cls >> abort.bat
ECHO set /p password="Password: " >> abort.bat
ECHO if "%password%"=="qwerty" goto :correct >> abort.bat
ECHO goto :Start >> abort.bat
ECHO :correct >> abort.bat
ECHO cls >> abort.bat
ECHO echo Password correct! >> abort.bat
ECHO C:\Windows\System32\shutdown.exe -a >> abort.bat
ECHO pause \nul >> abort.bat
ECHO exit >> abort.bat
START C:\Users\%USERNAME%\Desktop\shutdown.txt
COLOR 9B
ECHO.
ECHO --------------------------------------------------------------------
ECHO Run abort.bat and enter the password
ECHO Now press any key to delete the two files creted by this batch file.
ECHO --------------------------------------------------------------------
ECHO.
PAUSE
DEL C:\Users\%USERNAME%\Desktop\shutdown.txt
DEL C:\Users\%USERNAME%\Desktop\abort.bat
EXIT
```
It shuts down properly, creates and opens the text file properly, but I run into problems with the second batch file.

This is the code it puts into the second batch file:


```
@echo off 
MODE CON: COLS=20 LINES=5 
title abort 
color 9B 
:Start 
cls 
set /p password="Password: " 
if ""=="qwerty" goto :correct 
goto :Start 
:correct 
cls 
echo Password correct! 
C:\Windows\System32\shutdown.exe -a 
pause \nul 
exit
```
The password portion of the file won't rune because it doesn't add

```
%password%
```
 into it.

Does anybody know of a way to make it add that into the second batch file, or a second way of writing a password command that will work?

Thanks,
- Matt


----------



## nosliwde99 (Jul 17, 2010)

Matt,

I'm wanting to do the same sort of thing...write a batch file with a batch file that happens to include variables in the written batch.

Find an answer yet?

Ed Wilson


----------



## jamiemac2005 (Jul 5, 2007)

Hey, sorry i didn't notice this when it was first posted. This is a common issue, because the origional %password% will be interpreted as a variable by the first batch file.

However, in batch scripting the percent sign also operates as an escape character, to print 

```
%password%
```
in a batch file from a batch file you need to use:

```
%%password%%
```
where you want to print it.

So changing the code to:

```
@ECHO OFF
MODE CON: COLS=70 LINES=6
TITLE Shutdown - By Matt
START C:\Windows\System32\shutdown.exe -s -t 60 -c "Shutting Down"
ECHO Warning! Your computer will shutdown in 60 seconds! > shutdown.txt
ECHO. >> shutdown.txt
ECHO To abort, run the "abort" batch file on your desktop. >> shutdown.txt
ECHO @echo off > abort.bat
ECHO MODE CON: COLS=20 LINES=5 >> abort.bat
ECHO title abort >> abort.bat
ECHO color 9B >> abort.bat
ECHO :Start >> abort.bat
ECHO cls >> abort.bat
ECHO set /p password="Password: " >> abort.bat
ECHO if "[b]%%password%%[/b]"=="qwerty" goto :correct >> abort.bat
ECHO goto :Start >> abort.bat
ECHO :correct >> abort.bat
ECHO cls >> abort.bat
ECHO echo Password correct! >> abort.bat
ECHO C:\Windows\System32\shutdown.exe -a >> abort.bat
ECHO pause \nul >> abort.bat
ECHO exit >> abort.bat
START C:\Users\%USERNAME%\Desktop\shutdown.txt
COLOR 9B
ECHO.
ECHO --------------------------------------------------------------------
ECHO Run abort.bat and enter the password
ECHO Now press any key to delete the two files creted by this batch file.
ECHO --------------------------------------------------------------------
ECHO.
PAUSE
DEL C:\Users\%USERNAME%\Desktop\shutdown.txt
DEL C:\Users\%USERNAME%\Desktop\abort.bat
EXIT
```
Will fix the problem.

Cheers,
Jamey


----------



## nosliwde99 (Jul 17, 2010)

Bingo


----------

