字符串替换shell
格式 %变量C:A=B%app
意思就是把变量C中的A替换为Bcode
·批处理对格式要求严格,该有的空格不能省略ip
(好比for语句 in 和do 旁边的括号就必须有空格;echo 与括号之间也应该有空格,不然就报错)rem
·开启延迟环境变量扩展.字符串
我对延迟变量了解得不清楚,仅仅有一些印象,就是当你想让声明后的变量能够立刻用起来,而不提示 ECHO已关闭的话, 那么就要先开启这个变量延迟。 开启以后,引用变量的方式要从百分号变成感叹号: %var%变成 !var!io
开启方式在代码前面写:变量
setlocal EnableDelayedExpansion
自动请求管理员权限扩展
讲这段代码放在你的代码前面便可:object
%1 %2 ver|find "5.">nul&&goto :st mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :st","","runas",1)(window.close)&goto :eof :st copy "%~0" "%windir%\system32\"
添加多行内容
个人作法是直接重定向进去:
echo 内容1>> temp.txt echo 内容2>> temp.txt
删除指定行数内容
好比你须要删除 出现ABC 的那一段 到 EFG 那段中的全部内容。
那么能够使用这段代码:
set FIND_ABC=false set FIND_EFG=false echo.>temp.txt for /f "delims=" %%i in ( file.txt ) do ( set currentLine=%%i echo !currentLine!|find "ABC">nul&&set FIND_START=true if !FIND_START!==true ( if !FIND_END!==true ( echo %%i>>temp.txt ) ) else ( echo %%i>>temp.txt ) echo !currentLine!|find "EFG">nul&&set FIND_END=true )
这段代码的做用就是在循环到ABC和EFG那段的时候,不ECHO任何信息,
除此以外其余全部内容都ECHO到 临时问题件temp.txt上面去。
最后删除file.txt文件,讲临时文件temp.txt重命名为file.txt实现删除指定行内容。
del file.txt rem 删除文件 ren temp.txt file.txt 修改temp.txt名为file.txt