[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 pcl_test 于 2017-6-21 21:04 编辑

以下代码均保存为bat文件运行
方式一,传递一个数据
  1. ' 2>nul 3>nul&cls&@echo off
  2. '&for /f %%a in ('echo;123^|cscript -nologo -e:vbscript "%~fs0"') do set str=%%a
  3. '&echo;%str%
  4. '&pause&exit
  5. s= replace(WSH.StdIn.ReadLine,"2","test")
  6. WSH.Echo s
复制代码
方式二,传递一个数据
  1. ' 2>nul 3>nul&cls&@echo off
  2. '&for /f %%a in ('cscript -nologo -e:vbscript "%~fs0" "123"') do set str=%%a
  3. '&echo;%str%
  4. '&pause&exit
  5. s= replace(WSH.Arguments(0),"2","test")
  6. WSH.Echo s
复制代码
方式三,传递多个数据
  1. ' 2>nul 3>nul&cls&@echo off
  2. '&for /f %%a in ('(for /l %%i in (1 1 5^) do @echo;%%i^)^|cscript -nologo -e:vbscript "%~fs0"') do echo;%%a
  3. '&pause&exit
  4. s= replace(WSH.StdIn.ReadAll,"3","test")
  5. WSH.Echo s
复制代码
方式四,传递多个数据
  1. ' 2>nul 3>nul&cls&@echo off
  2. '&for /f %%a in ('(for /l %%i in (1 1 5^) do @echo;%%i^)^|cscript -nologo -e:vbscript "%~fs0"') do echo;%%a
  3. '&pause&exit
  4. Do While WSH.StdIn.AtEndOfStream <> true
  5.     s=s&replace(WSH.StdIn.ReadLine,"3","test")&vbCrLf
  6. Loop
  7. WSH.Echo s
复制代码
方式五,传递多个数据
  1. ' 2>nul 3>nul&cls&@echo off
  2. '&for /f %%a in ('cscript -nologo -e:vbscript "%~fs0" 1 2 3 4 5') do echo;%%a
  3. '&pause&exit
  4. for i=0 to WSH.Arguments.Count-1
  5.     s=s&replace(WSH.Arguments(i),"3","test")&vbCrLf
  6. Next
  7. WSH.Echo s
复制代码
方式六
  1. @echo off
  2. for /f "delims=" %%a in ('mshta VBScript:Execute("CreateObject(""Scripting.Filesystemobject"").GetStandardStream(1).Write(""当前时间是""&now)"^)(close^)') do echo;%%a
  3. pause
复制代码
传递输出文本内容方式,配合WSH.StdIn.ReadLine/WSH.StdIn.ReadAll、WSH.Echo
  1. '&cls&type "a.txt"|cscript -nologo -e:vbscript "%~fs0">"b.txt"&pause
  2. WSH.echo WSH.StdIn.ReadLine&vbCrLf&"举个栗子"
复制代码
  1. '&cls&cscript -nologo -e:vbscript "%~fs0"<"a.txt">"b.txt"&pause
  2. WSH.echo WSH.StdIn.ReadAll&vbCrLf&"举个栗子"
复制代码
另一种混合方式,不要求在cmd控制台窗口回显,弹出提示框方式显示
  1. '&cls&@echo off
  2. '&cls&echo;123|cscript -nologo -e:vbscript "%~fs0"
  3. '&cls&pause&exit
  4. msgbox replace(WSH.StdIn.ReadAll,"2","test")
复制代码
1

评分人数

TOP

返回列表