DOS Scripts
Create a large empty file
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/fsutil.mspx?mfr=true
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
WSFTP
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
DateStamp
echo %date:~-4%%date:~4,2%%date:~7,2%
returns YYYYMMDD
echo %date:~4,2%/%date:~7,2%/%date:~-4%
MM/DD/YYYY
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>
http://ings.ca/jim/2008/02/10/adding-timestamps-in-a-dos-batch-file/
@echo off
cls
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"
Aggregate.bat
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
http://www.dostips.com/forum/viewtopic.php?f=3&t=1353
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'})}"