我试图运行一个批处理文件,从WSH脚本获得一个变量。当我运行脚本时,我得到了正确的输出,但我似乎无法将其设置为变量
@if (@codesection == @batch) @then
cscript //nologo //e:JScript "%~f0"
set getclip=cscript //nologo //e:jscript "%f~0"
echo "%getclip%"
pause
goto :EOF
@end
WSH.Echo(WSH.CreateObject('htmlfile').parentWindow.clipboardData.getData('text'));
第二行返回剪贴板,但不返回getclip变量
你在这部分有一个小错误://e:jscript "%f~0"
为了获得命令的输出,您需要使用for /F
命令。
同样,一个变量只能存储一行。如果您想要得到几行,您需要使用数组:
@if (@codesection == @batch) @then
@echo off
setlocal EnableDelayedExpansion
cscript //nologo //e:JScript "%~f0"
ECHO ===============
set "line=0"
for /F "delims=" %%a in ('cscript //nologo //e:JScript "%~f0"') do (
set /A line+=1
set "getclip[!line!]=%%a"
)
for /L %%i in (1,1,%line%) do echo !getclip[%%i]!
pause
goto :EOF
@end
WSH.Echo(WSH.CreateObject('htmlfile').parentWindow.clipboardData.getData('text'));