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