从WSH脚本设置批处理变量



我试图运行一个批处理文件,从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'));

相关内容

  • 没有找到相关文章