Home‎ > ‎Scripting‎ > ‎

DOS Scripts

Create a large empty file


fsutil file [createnew] PathName length

fsutil file createnew c:\DeleteMe1GB.txt 1073741824

For loops

for each directory in .\Export\ delete directoryname 

for /D %%d IN (Export) DO rmdir %%d

Random Password Generator


wapg.exe -x 8 -n 1 -E "|?&<%\/!@#$^*',`~+=_;:()[]{}." >foo.txt



iftpaddu.exe -h hostname -mod -u username -p newpass 


Query RDP Sessions


query session /server:servername
reset session [ID] /server:servername

query session /server:localhost | findstr console

query user


echo %date:~-4%%date:~4,2%%date:~7,2%
returns YYYYMMDD
echo %date:~4,2%/%date:~7,2%/%date:~-4%


echo %date:~0,3%

returns Mon (day of the week)

SET CurrDay=%DATE:~7,2%&::
SET CurrMonth=%DATE:~4,2%&::
SET CurrYear=%DATE:~10,4%&::
SET CurrDate=%CurrMonth%_%Curr<wbr>Day%_%Curr<wbr>Year%</wbr></wbr>


@echo off

rem Timestamp Generator
rem Parse the date (e.g., Fri 02/08/2008)
set cur_yyyy=%date:~10,4%
set cur_mm=%date:~4,2%
set cur_dd=%date:~7,2%

rem Parse the time (e.g., 11:17:13.49)
set cur_hh=%time:~0,2%
if %cur_hh% lss 10 (set cur_hh=0%time:~1,1%)
set cur_nn=%time:~3,2%
set cur_ss=%time:~6,2%
set cur_ms=%time:~9,2%

rem Set the timestamp format
set timestamp=%cur_yyyy%%cur_mm%%cur_dd%-%cur_hh%%cur_nn%%cur_ss%%cur_ms%

rem Do something with it
echo Timestamp: %timestamp%

rem Clear the environment variables
set cur_yyyy=
set cur_mm=
set cur_dd=
set cur_hh=
set cur_nn=
set cur_ss=
set cur_ms=
set timestamp=
systeminfo > "H:\DC Patching\%computername%_%date:~-4%%date:~4,2%%date:~7,2%.txt" 



concatenate files together. Create a batch file with the content bellow, drop it into the directory of files you want to aggregate and run it.
for %%f in (*.log) do type "%%f" >> aggregate.txt 


Get the logged on user for a remote machine

nbtstat -a computername
nbtstat -a computername | FIND "<03>" | FIND /I /V "computername"
WMIC /Node:computername ComputerSystem Get UserName 


ComputerNames that start with ABC


IF %COMPUTERNAME:~0,3%==ABC echo foo

What service is using a port

XXXX is the port in use
NNNN is the PID returned by netstat -ano

netstat -ano | findstr XXXX
tasklist /svc /FI "PID eq NNNN"
net stop "Service Name"

Calculate File sizes

get a list of all files then create a new list of their file sizes 

dir /s/b *.zip > c:\temp\test.txt
#return file size and file path
for /f %I in (c:\temp\test.txt) do @echo %~zpI
#Return file size only
for /f %I in (c:\temp\test.txt) do @echo %~zI

Testing port access from a batch script

Had to call powershell to get this done
powershell -noprofile -ExecutionPolicy bypass -command "& {$(try { $socket = new-object Net.Sockets.TcpClient; $socket.Connect('google.com',80); $socket.Connected} catch [system.exception] {'False'})}"