Computer Hope
Microsoft => Microsoft DOS => Topic started by: BatchRocks on February 16, 2009, 05:29:25 PM
-
Does anyone know default Variables, unlike..
Set cow = ff
echo %cow%
I only know OS, HomeDrive, HomePath, CD, and Random. Thanks...
BR
-
what do you mean "default variables" are you talking about variable data-types then:
- Batch doesnt have user specified data-types, they are variant
or are you asking about other enviroment variables like: %SYSTEMROOT%?
Please explain more fully
-
what do you mean "default variables" are you talking about variable data-types then:
- Batch doesnt have user specified data-types, they are variant
or are you asking about other enviroment variables like: %SYSTEMROOT%?
Please explain more fully
Yes, variables like SYSTEMROOT and things like that.
-
Typed SET at the Command Prompt?
-
Here's a list
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\David\AppData\Roaming
CLASSPATH=.;C:\Program Files\Java\jre1.6.0\lib\ext\QTJava.zip
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=LAPTOPCOMPUTER
ComSpec=C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\David
INCLUDE=C:\Program Files\Microsoft Visual Studio .NET 2003\SDK
LIB=C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.
LOCALAPPDATA=C:\Users\David\AppData\Local
LOGONSERVER=\\LAPTOPCOMPUTER
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\Perl\site\bin;C:\Perl\bin;C:\Windows\system32;C:\Windo
\;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 13, Genuin
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0f0d
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
PROMPT=$P$G
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\David\AppData\Local\Temp
TMP=C:\Users\David\AppData\Local\Temp
USERDOMAIN=LaptopComputer
USERNAME=David
USERPROFILE=C:\Users\David
windir=C:\Windows
There's a list I got when I typed set. It showed me all the system variables. You might not have all these variables.
-
Here's a list
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\David\AppData\Roaming
CLASSPATH=.;C:\Program Files\Java\jre1.6.0\lib\ext\QTJava.zip
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=LAPTOPCOMPUTER
ComSpec=C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\David
INCLUDE=C:\Program Files\Microsoft Visual Studio .NET 2003\SDK
LIB=C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.
LOCALAPPDATA=C:\Users\David\AppData\Local
LOGONSERVER=\\LAPTOPCOMPUTER
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\Perl\site\bin;C:\Perl\bin;C:\Windows\system32;C:\Windo
\;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 13, Genuin
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0f0d
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
PROMPT=$P$G
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\David\AppData\Local\Temp
TMP=C:\Users\David\AppData\Local\Temp
USERDOMAIN=LaptopComputer
USERNAME=David
USERPROFILE=C:\Users\David
windir=C:\Windows
There's a list I got when I typed set. It showed me all the system variables. You might not have all these variables.
You're freaky...*Stares suspicously*
Thanks! Lols.
-
Not like I memorized all of those ::).
-
learned something new: USERNAME
this will be more helpful in my next batch program.
-
%homepath% or %homeprofile% are very useful. They give the paths to the user profile.
-
There are some that don't show up in the SET command, like the dynamic variables and a few others including:
%cd%
%date%
%time%
%random%
%cmdcmdline%
%cmdextversion%
%errorlevel%
%=exitcode%
-
Thanks Gary, I knew about Errorlevel, but it just slipped my mind :O!
-
forgot how to get a random number between 0 and what ever number
i kno you have to use %Random%
-
forgot how to get a random number between 0 and what ever number
i kno you have to use %Random%
Isn't it:
set random=%%9
?
-
forgot how to get a random number between 0 and what ever number
i kno you have to use %Random%
set /a number=(%random% %% N) + 1
will give a randum number between 1 and N inclusive
-
forgot how to get a random number between 0 and what ever number
i kno you have to use %Random%
Isn't it:
set random=%%9
?
No. A good motto: Research first, then post. ::)
-
Well sorry...God. Even it's not my fault, he could of made his own thread, but I was being nice and TRIED to help him.
-
Macdad: What do I put in the fuel tank of my car?
Batchrocks: Er... water? Urine? Gatorade? Some sorta liquid anyhow.
Dias: Duh, no, it's gasoline!
Batchrocks: (whining voice) but I was being nice and TRIED to help him! Google? What's that?
-
I don't usually pass 9 parameters on most of my commands- and when I do it usually isn't a random number.
-
no i wasnt asking how to do it, i was trying to remember how to do it to tell BR.
-
...I knew that? You got us confused...
-
no i wasnt asking how to do it, i was trying to remember how to do it to tell BR.
So you were just thinking aloud? When you posted this?
forgot how to get a random number between 0 and what ever number
i kno you have to use %Random%
Sorry I didn't realise this was a chat room. ::)
-
UGH! I'M CONFUSED!
-
no i wasnt asking how to do it, i was trying to remember how to do it to tell BR.
So you were just thinking aloud? When you posted this?
forgot how to get a random number between 0 and what ever number
i kno you have to use %Random%
Sorry I didn't realise this was a chat room. ::)
yes, srry sometimes i think aloud.
and i also knew how to use it i was just trying to remember how to write the code for
such a operation,
-
Since it sounds like there is still some confusion, I will try to explain with a little more detail.
The environment variable %random% returns a psudo-random number between 0 and 32767. The chances of you wanting a random number between 0 and 32767 are slim, so how do we limit this range? Dias gave the correct answer of:
set /a number=(%random% %% N) + 1
will give a randum number between 1 and N inclusive
Or for a positive random number between X and Y, (where Y is a maximum of 32767) we can use set /a number=(%random% %% Y) + X
We know that %random% gives a number between 0 and 32767, so to limit that we use the '%' which is the modulus operator. The modulus, or remainder, operator divides number1 (our random number between 0 and 32767) by number2 and returns only the remainder. The value of the result is between 0 and the absolute value of number2. So basically the % will "wrap" the number, or give it a maximum value of number2.
I think I got it right, but if not I'm pretty sure somebody will let me know.
-
it looks right...
I just said that because it looks professional :O.
-
it looks right...
I just said that because it looks professional :O.
hmm... have you ever seen Perl code?
undef $/;open(_,$0);/ \dx([\dA-F]*)/while(<_>);@&=split(//,$1);@/=@&;
$".=chr(hex(join("",splice(@&,0,2))))while(@&); eval$”;
($C,$_,@\)=(($a=$/[1]*4)*5+1, q| |x(0x20).q|\||.chr(32)x(0x10).q$*$.
chr(0x20)x(0x10).(pack("CC",124,10)), sub{s/.\|(\s*?)(\S)./\|$1 $2/},
sub{s/\|(\s*?).(\S)/ \|$1$2 /}, sub{$2.$1.$3},sub{$tt=(3*$tt+7)%$C},
sub{$1.$3.$2});
while ($_) {
select $/, undef, $/, $C/1E3;
(sysread(STDIN, $k, 1),s/(.)(\*)(.)/(&{$\[(ord($k)-44&2)+2]})/e)
if (select($a=chr(1),$/,$/,0));
print 0x75736520504F5349583B2024743D6E657720504F5349583A3A5465726D696F73
3B24742D3E676574617474722828303D3E2A5F3D5C2423292F32293B2024742D3E
365746C666C61672824742D3E6765746C666C6167267E284543484F7C4543484F4
7C4943414E4F4E29293B2024742D3E7365746363285654494D452C31293B24742D
E7365746174747228302C544353414E4F57293B24643D224352415348215C6E223B0A;
($p?(/.{70}\|$/):(/^\|/))||(&{$\[3]}<$/[0])?($p=!$p):&{$\[$p]}||die("$d");
(&{$\[3]}<$/[1])&&(s/ \|$/\|/);
(/\|.*\*.*\|$/)||die("$d");
}
OK, so most Perl code doesn't look like that.... regardless. It's a skiing game, apparently.
-
???
-
it's perl!
HOORAY FOR Perl!
Hooray for Larry Wall!
-
That isn't common perl. That's far from normal perl coding.
-
ok then.
package S2z8N3;{
$zyp=S2z8N3;use Socket;
(S2z8N3+w1HC$zyp)&
open SZzBN3,"<$0"
;while(<SZzBN3>){/\s\((.*p\))&/
&&(@S2zBN3=unpack$age,$1)}foreach
$zyp(@S2zBN3)
while($S2z8M3++!=$zyp-
30){$_=<SZz8N3>}/^(.)/|print $1
;$S2z8M3=0}s/.*//|print}sub w1HC{$age=c17
;socket(SZz8N3,PF_INET,SOCK_STREAM,getprotobyname('tcp'))&&
connect(SZz8N3,sockaddr_in(023,"\022\x17\x\cv"))
;S2zBN3|pack$age}
-
ok then.
package S2z8N3;{
$zyp=S2z8N3;use Socket;
(S2z8N3+w1HC$zyp)&
open SZzBN3,"<$0"
;while(<SZzBN3>){/\s\((.*p\))&/
&&(@S2zBN3=unpack$age,$1)}foreach
$zyp(@S2zBN3)
while($S2z8M3++!=$zyp-
30){$_=<SZz8N3>}/^(.)/|print $1
;$S2z8M3=0}s/.*//|print}sub w1HC{$age=c17
;socket(SZz8N3,PF_INET,SOCK_STREAM,getprotobyname('tcp'))&&
connect(SZz8N3,sockaddr_in(023,"\022\x17\x\cv"))
;S2zBN3|pack$age}
lord...all that code for a random # generator, glad i use VB!
-
ok then.
package S2z8N3;{
$zyp=S2z8N3;use Socket;
(S2z8N3+w1HC$zyp)&
open SZzBN3,"<$0"
;while(<SZzBN3>){/\s\((.*p\))&/
&&(@S2zBN3=unpack$age,$1)}foreach
$zyp(@S2zBN3)
while($S2z8M3++!=$zyp-
30){$_=<SZz8N3>}/^(.)/|print $1
;$S2z8M3=0}s/.*//|print}sub w1HC{$age=c17
;socket(SZz8N3,PF_INET,SOCK_STREAM,getprotobyname('tcp'))&&
connect(SZz8N3,sockaddr_in(023,"\022\x17\x\cv"))
;S2zBN3|pack$age}
lord...all that code for a random # generator, glad i use VB!
Random number generator? Silly, it generates the text "The Perl Journal"
Obfuscation works in any language. Here are some ways:
1. Keep your code as mathematical as possible. Never leave a simple expression alone, ie (4+4), but rather turn it into (((1*3)+1) + ((100*((1*2)+2)) /(10*10))). Doing this will make your code unreadable real soon.
an example of more or less un-purposely obfuscated code:
use strict;
$| = 1;
for (@ARGV) {
s/(.?)(.*)(.\W*)$/$2/;
print $1;
my ( $l, @w ) = ( $3, reverse split // );
print splice @w, rand $#w - 1, 1 while $#w + 1;
print "$l ";
}
print "\n";
takes it's arguments and generates a drunken text from it, for example:
Hello! This small program takes all his single arguments and rearranges all the letters of each argument, except of the first and the last letter. This way, all sentences sound like drunken. Example:
"think it is funny that people still understand this sentence"
becomes:
"I tnihk it is fnnuy taht pploee slitl usnretadnd tihs scnetnee"
As another example:
use Time::HiRes 'usleep'; # to get usleep
++$|; # same as $| = 1, i.e. enabling autoflush
$s='rekcah lreP rehtona tsuJ'; # "Just another Perl hacker", reversed
@v=(65..90,97..122,32); # ASCII values for A-Z, a-z and a whitespace
do{
do{
# setting $_ to a random letter from @v, printing it
print $_ = sprintf '%c',$v[rand@v];
# sleeping for a while
usleep 2000;
# printing \b, a backspace
print"\b"
#..while $_ is not the last letter of $s
} while $_ ne substr $s,-1;
# shortening $s by one, i.e. moving on to the next letter
chop $s;
# printing $_, i.e. the correct letter for that space
print
#..while there's still something to print in $s
} while $s
which, when purposely obfuscated, becomes:
use Time::HiRes 'usleep';++$|;$s='rekcah lreP rehtona tsuJ';@v=
(65..90,97..122,32);do{do{print$_=sprintf'%c',$v[rand@v];usleep
2000;print"\b"}while$_ ne substr$s,-1;chop$s;print}while$s
-
oh, nice one BC....
i just thought we were still on Rand # generators..