@echo off
if "%1" neq "$" (
for /f "tokens=2 delims=#" %%a in ('"%~0" $^|sort') do echo %%a
pause>nul
) else for /f "delims=" %%i in (test.txt) do call echo %%random:~-1%%%%random:~-1%% #%%i
这是哪个全部代码你可以给我仔细解释下吗
在 for 内,那么^| 就= |
整个脚本按照这个顺序执行,其实你也可以去掉@echo off,观察运行情况。
直接运行脚本,没有参数,所以 %1 neq $ 成立,运行 IF内代码 {
for 语句调用' %~0 $ | sort '语句的输出 {
%~0 $ 等于 第二次执行脚本,并且给出一个$的参数,因此执行else后的语句 {
for /f ..%%i in (test.txt) do echo 输出 “随机2位数#test内一行内容”
}
| sort 将所有内容按照"#"前的2位数字从小-大排序后输出。(实际上就是随机打乱了test文本内的内容)
} tokens=2 ,delims=# 表示直取#后面的内容,将随机排序用的2位数去掉,然后输出。
pause>nul 暂停脚本,按键后推出。
} END IF
END BAT
这是一个按行随机打乱文本内容的脚本。
非常谢谢你 ,我可以加你QQ吗?我感觉我还有好多不会的,想多请教请教你
批处理 中 "%~0" $^|sort' 什么意思
~0 表示批处理文件本身。假如 你运行的bat文件是 d:\\abc\\a.bat 那么"%~0" 等于 "d:\\abc\\a.bat",而$^|sort 是一个参数,如果不包含^号,参数就是单独的$ 字符,然后将输出句柄传给 sort (将输出内容排序的程序)。整句等于 "d:\\abc\\a.bat" $^|sort 至于为什么把 |sort当成参数带入...
批处理随机排列 txt文本行
在批处理中,%0表示批处理本身, 而%1 - %9 分别表示第一个到第九个参数 如果是文件的话,就可以表示 第一个文件,第二个文件...第九个文件 所以,只要把指定的 a.txt 换成为 %1就可以了.表示从(托入的)第一个文件中读取内容 echo off& mode con cols=40 lines=10& color 17&cd \/d %...
高级批处理问题,精通的高手来看看。
01;16 2006-07-17 粗活,太多不确定因素,同时因为涉及到Sort,Find等等命令,以及命令在NT系统中与9X系统的区别,这批处理只限于大多数中文XP(NT)系统...自己看着改吧.分别命名2目录为d1 和 d2,...;\\\\\\ rem 目录大小对比 rem 目录尺寸按顺序输出为两个值,以值在文件中排序,对比排序前后文件是否...
批处理,复制文件及加前缀?
robocopy没有重命名的功能,如果您需要这个命令中的多线程功能,那么只能在全部复制完毕后再进行重命名添加前缀了。echo off & title 复制文件(夹)并加上日期前缀 By 依梦琴瑶cd \/d "%~dp0"::这里自己添加日期变量set D=set "src=C:\\Users\\Administrator\\Desktop\\监控日志模板\\早班模板"set "d...
在批处理里,将数字从小到大的排列,可以吗?
set num3=%num3 set num4=%num4 set num5=%num5 ::sort 只能做行与行之间的排序,而 echo 一次只能输出一行,::所以用括号把 5 个输出结合成一个 5 行的输出最方便。(echo %num1:~-5 echo %num2:~-5 echo %num3:~-5 echo %num4:~-5 echo %num5:~-5 ) | sort ...
批处理 文件名前添加序号及下划线
Unicode)] public static extern int StrCmpLogicalW(string p1, string p2); public static string[] Sort(string[] f) { Array.Sort(f, StrCmpLogicalW); return f; } }'@;Add-Type -TypeDefinition $codes;$b=[Convert]::FromBase64String(...
请问批处理里面的%有什么用法,最好能说出%1 %2等等的用法,高分
=== willsort 编注 === 首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符:CR(0D) 命令行结束符 Escape(1B) ANSI转义字符引导符 Space(20) 常用的参数界定符 Tab(09) ; = 不常用的参数...
求批处理搜索指定文件夹下搜索文件名加後缀。若有重复名称,以最新修 ...
set "搜索文件名=test.txt"for \/r "%指定文件夹%" %%a in (%搜索文件名%) do (set "[%%~ta=%%~dpa")for \/f "tokens=1* delims==" %%a in ('set [ ^| sort') do (set "last=%%~b"set "last=!last:~1!) start "%last%"pause查找最新的test.txt,打开所在文件夹 ...
您好,之前解答的这个问题:bat批处理语句,把多个文件夹里面的文件按名称...
延迟变量替换是批处理的一种特性,它可以在执行命令时才替换变量值,而不是在解释命令时就替换。这使得我们可以在for循环中使用延迟变量替换来修改变量值,然后在命令中使用这些修改后的变量值。最后,这段代码中使用了set \/a命令来对变量进行数学运算。set \/a命令可以用于将变量值设置为数学表达式的结果...
跪求指点dos sort命令的使用
之前单个排好的序可能(对sort命令)没什么帮助作用 针对样文写个bat批处理供参考:echo off(for \/f "tokens=1-8 delims=:," %%a in (test.txt)do ( echo %%~b%%~d%%~h=%%a:%%b,%%c:%%d,%%e:%%f,%%g:%%h))>temp.txt(for \/f "tokens=1* delims==" %%i in ('sort temp....