www.1862.net > 批处理命令结果赋值问题

批处理命令结果赋值问题

@echo off for /f "delims=" %%a in ('dir/b/s c:\windows\temp') do copy "%%a" d:\ pause 以上代码保存为bat批处理,在cmd中一个%用到批处理中要用两个表示%% 另:应该是c:\windows\temp吧,貌似你的少了个sfor /f命令,将in()括号内的命令执行结果返回给变量%%a,dir还需加一个/b参数,使用空格式表示,也就是只显示出文件的完整路径.这些命令具体用法cmd中输入dir/?和for/?查看吧.

@echo offfor /f "delims=" %%a in ('ipconfig ^| findstr /n ".*"') do set "var=%%a"for /f "delims=:" %%b in ("%var%") do set "str=%%b"if "%str% GEQ 100 (echo warning) else echo OKpause

@echo off & color 0d & setlocal enabledelayedexpansion ipconfig>ip.txt for /f "delims=" %%a in (ip.txt) do ( set ip=%%a echo !ip! ) pause>nul :: 1. 将ipconfig的结果输出保存到文本 :: 2. 再用for语句把文本内的数据赋值给变量ip :: 3. 最后在输出变量ip :: 中国批处理脚本联盟

直接在记事本中写入"arp -a"然后另存为arp.bat即可!双击即可运行!

返回值赋值确实麻烦,因为有很多特殊字符.不过,你这个例子,倒是有解.请试试命令echo %path% 或者set "a=%path%" echo %a%pause

批处理命令在cmd中运行可以看到运行结果,程序通过与cmd进行管道通信即可读取到运行结果

用 FOR 过滤

什么意思?贴个代码

@Echo Off Set "var=curl -s 网址部分 ^^^| iconv -f utf-8 -t gb2312" Echo %var% Pause

有个问题是,你需要确定,只返回一行数值,否则,它会只取最后一个.for /f "delims=" %%i in ('netstat -a^|findstr 50000') do (set a=%%i) echo %a% pause

相关搜索:

网站地图

All rights reserved Powered by www.1862.net

copyright ©right 2010-2021。
www.1862.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com