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

[系统相关] [已解决]如何将当前批处理变量的值,传递到通过more命令生成的bat文件里面?谢谢

本帖最后由 ygqiang 于 2015-12-4 10:53 编辑

[已解决]bat批处理命令,如何将当前变量的值,传递到新生成的bat文件里面?谢谢
  1. @echo off
  2. ------------------------------------------------------------------------------------
  3. for /f "tokens=15 delims= " %%i in ('ipconfig ^| find /i "IP Address"') do set i=%%i
  4. for /f "tokens=1,2,3 delims=." %%i in ("%i%") do (set a=%%i.%%j.%%k)
  5. echo %a%
  6. set ipp=10
  7. ------------------------------------------------
  8. if "%a%" == "192.168.9"   goto :next9
  9. goto :next
  10. ------------------------------
  11. :next9
  12. set ipp=20
  13. ------------------------------
  14. :next
  15. echo %ipp%
  16. echo 如何将这里的ipp变量值,传送到zcom.bat文件里面?
  17. ------------------------------------------------------------------------------------
  18. for /f "delims=:" %%i in ('findstr /n "^:zcom-copy$" "%~f0"') do (
  19.     more +%%i "%~f0" > c:\zcom.bat
  20. )
  21. copy /y c:\zcom.bat "%userprofile%\「开始」菜单\程序\启动"
  22. ping 127.0.0.1 -n 5 >nul 2>nul
  23. exit
  24. ——————————————————————————————————————————————
  25. :zcom-copy
  26. @echo off
  27. if "%1" == "h" goto begin
  28. mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit
  29. :begin
  30. rem 下边开始写批处代码了
  31. ping 127.0.0.1 -n %ipp% >nul 2>nul
  32. echo 如何将最开始的ipp变量值,传送到这里来?
  33. 。。。。其他bat代码。。。。
复制代码
更新下:——————————————————————————

bat代码,实现的功能就是:
1、判断ip地址段,如果是192.168.9,ipp变量赋值20;否则ipp变量赋值10
2、bat代码自动生成bat文件c:\zcom.bat,并且复制到"%userprofile%\「开始」菜单\程序\启动"目录下。
3、倒计时5秒自动退出bat代码。
4、zcom.bat文件内容如下:
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit
:begin
rem 下边开始写批处代码了
ping 127.0.0.1 -n %ipp% >nul 2>nul

可以把其他bat代码的%ipp%变成%~1
在之前的代码用
bat文件名 %ipp%
来启动其他bat

TOP

本帖最后由 ygqiang 于 2015-12-2 22:19 编辑
可以把其他bat代码的%ipp%变成%~1
在之前的代码用
bat文件名 %ipp%
来启动其他bat
bbaa 发表于 2015-12-2 21:52



    你好。如何在1楼bat代码基础上修改?谢谢

要求:不能改变1楼这个bat代码的基本功能,自动生成/运行另一个bat文件。

TOP

没注意有个 if %1......

TOP

本帖最后由 pcl_test 于 2015-12-3 00:45 编辑

回复 4# bbaa


   
    不能解决吗?谢谢

TOP

本帖最后由 pcl_test 于 2015-12-3 00:19 编辑
  1. /*&cls
  2. @echo off
  3. set test=测试
  4. for /l %%a in (1 1 5) do set /a n+=%%a
  5. echo;-----------------------------------------------------------------
  6. (for /f "delims=:" %%囧 in ('findstr /n "^:ExtraCodes$" "%~f0"') do (
  7.     rem 调用js"传参" %test%和%n%
  8.     more +%%囧 "%~f0"|cscript -nologo -e:jscript "%~f0" "%%test%%|%test%" "%%n%%|%n%"
  9. ))>"生成.bat"
  10. exit
  11. */
  12. var battxt = WScript.StdIn.ReadAll();
  13. for(var i=0; i<WScript.Arguments.length; i++)
  14. {
  15.     var tmp = WScript.Arguments(i).split('|');
  16.     var reg = RegExp(tmp[0],'g');
  17.     battxt = battxt.replace(reg, tmp[1]);
  18. }
  19. WSH.echo(battxt);
  20. /*
  21. ----------------------------------------------------------------------
  22. :ExtraCodes
  23. @echo off
  24. echo %test%
  25. echo %n%
  26. pause
  27. rem */
复制代码

TOP

  1. @echo off
  2. call xxx.bat
  3. echo.%ipp%
复制代码

TOP

本帖最后由 pcl_test 于 2015-12-3 00:48 编辑

回复 6# pcl_test   

win7 64系统,生成.bat,文件内容如下:

@echo off
echo 测试
echo 15
pause
rem */


要求:不能改变1楼这个bat代码的基本功能,自动生成另一个bat文件。这个bat文件内容,就包含在bat代码里面。。

TOP

本帖最后由 pcl_test 于 2015-12-3 00:46 编辑

回复 7# flyinnet9


   

    要求:不能改变1楼这个bat代码的基本功能,自动生成另一个bat文件。

TOP

回复 8# ygqiang

不就是这样做的吗?还是你没把问题说明白

TOP

回复  ygqiang

不就是这样做的吗?还是你没把问题说明白
pcl_test 发表于 2015-12-2 23:41



bat代码,实现的功能是:
1、判断ip地址段,如果是192.168.9,ipp变量赋值20;否则ipp变量赋值10
2、bat代码自动生成bat文件c:\zcom.bat,并且复制到"%userprofile%\「开始」菜单\程序\启动"目录下。
3、倒计时5秒自动退出bat代码。
4、zcom.bat文件内容如下:
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit
:begin
rem 下边开始写批处代码了
ping 127.0.0.1 -n %ipp% >nul 2>nul

TOP

回复 11# ygqiang

你的代码我知道呀,可是你可看懂6楼的代码?把你相应的代码套进6楼的代码不就是了?

TOP

回复 12# pcl_test


    6楼的代码?看不懂啊。。。麻烦你了。。

TOP

本帖最后由 pcl_test 于 2015-12-3 00:28 编辑

回复 13# ygqiang


/*&cls
@echo off
for /f "tokens=15 delims= " %%i in ('ipconfig ^| find /i "IP Address"') do set i=%%i
for /f "tokens=1,2,3 delims=." %%i in ("%i%") do (set a=%%i.%%j.%%k)
echo %a%
set ipp=10
if "%a%" == "192.168.9" goto :next9
goto :next
:next9
set ipp=20
:next
echo %ipp%
echo 如何将这里的ipp变量值,传送到zcom.bat文件里面?

echo;---------------------------------------------
(for /f "delims=:" %%靠 in ('findstr /n "^:ExtraCodes$" "%~f0"') do (
    more +%%靠 "%~f0"|cscript -nologo -e:jscript "%~f0" "%%ipp%%|%ipp%"
))>c:\zcom.bat
copy /y c:\zcom.bat "%userprofile%\「开始」菜单\程序\启动"
ping 127.0.0.1 -n 5 >nul 2>nul
exit

*/
var battxt = WScript.StdIn.ReadAll();
for(var i=0; i<WScript.Arguments.length; i++)
{
    var tmp = WScript.Arguments(i).split('|');
    var reg = RegExp(tmp[0],'g');
    battxt = battxt.replace(reg, tmp[1]);
}
WSH.echo(battxt);
/*
---------------------------------------------
:ExtraCodes
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit
:begin
rem 下边开始写批处代码了

ping 127.0.0.1 -n %ipp% >nul 2>nul

echo 如何将最开始的ipp变量值,传送到这里来?
。。。。其他bat代码。。。。

rem */

TOP

5 - 6年的伸手党~
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

返回列表