标题: [系统相关] [已解决]如何将当前批处理变量的值,传递到通过more命令生成的bat文件里面?谢谢 [打印本页]
作者: ygqiang 时间: 2015-12-2 20:19 标题: [已解决]如何将当前批处理变量的值,传递到通过more命令生成的bat文件里面?谢谢
本帖最后由 ygqiang 于 2015-12-4 10:53 编辑
[已解决]bat批处理命令,如何将当前变量的值,传递到新生成的bat文件里面?谢谢- @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文件里面?
-
-
- ------------------------------------------------------------------------------------
- for /f "delims=:" %%i in ('findstr /n "^:zcom-copy$" "%~f0"') do (
- more +%%i "%~f0" > c:\zcom.bat
- )
-
-
- copy /y c:\zcom.bat "%userprofile%\「开始」菜单\程序\启动"
- ping 127.0.0.1 -n 5 >nul 2>nul
-
-
- exit
-
-
-
-
-
-
- ——————————————————————————————————————————————
- :zcom-copy
- @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代码。。。。
复制代码
更新下:——————————————————————————
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
作者: bbaa 时间: 2015-12-2 21:52
可以把其他bat代码的%ipp%变成%~1
在之前的代码用
bat文件名 %ipp%
来启动其他bat
作者: ygqiang 时间: 2015-12-2 22:18
本帖最后由 ygqiang 于 2015-12-2 22:19 编辑
可以把其他bat代码的%ipp%变成%~1
在之前的代码用
bat文件名 %ipp%
来启动其他bat
bbaa 发表于 2015-12-2 21:52
你好。如何在1楼bat代码基础上修改?谢谢
要求:不能改变1楼这个bat代码的基本功能,自动生成/运行另一个bat文件。
作者: bbaa 时间: 2015-12-2 22:30
没注意有个 if %1......
作者: ygqiang 时间: 2015-12-2 22:50
本帖最后由 pcl_test 于 2015-12-3 00:45 编辑
回复 4# bbaa
不能解决吗?谢谢
作者: pcl_test 时间: 2015-12-2 23:21
本帖最后由 pcl_test 于 2015-12-3 00:19 编辑
- /*&cls
- @echo off
- set test=测试
- for /l %%a in (1 1 5) do set /a n+=%%a
- echo;-----------------------------------------------------------------
- (for /f "delims=:" %%囧 in ('findstr /n "^:ExtraCodes$" "%~f0"') do (
- rem 调用js"传参" %test%和%n%
- more +%%囧 "%~f0"|cscript -nologo -e:jscript "%~f0" "%%test%%|%test%" "%%n%%|%n%"
- ))>"生成.bat"
- 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
- echo %test%
- echo %n%
- pause
- rem */
复制代码
作者: flyinnet9 时间: 2015-12-2 23:21
- @echo off
- call xxx.bat
- echo.%ipp%
复制代码
作者: ygqiang 时间: 2015-12-2 23:34
本帖最后由 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代码里面。。
作者: ygqiang 时间: 2015-12-2 23:37
本帖最后由 pcl_test 于 2015-12-3 00:46 编辑
回复 7# flyinnet9
要求:不能改变1楼这个bat代码的基本功能,自动生成另一个bat文件。
作者: pcl_test 时间: 2015-12-2 23:41
回复 8# ygqiang
不就是这样做的吗?还是你没把问题说明白
作者: ygqiang 时间: 2015-12-2 23:48
回复 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
作者: pcl_test 时间: 2015-12-2 23:54
回复 11# ygqiang
你的代码我知道呀,可是你可看懂6楼的代码?把你相应的代码套进6楼的代码不就是了?
作者: ygqiang 时间: 2015-12-3 00:03
回复 12# pcl_test
6楼的代码?看不懂啊。。。麻烦你了。。
作者: pcl_test 时间: 2015-12-3 00:21
本帖最后由 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 */
作者: 依山居 时间: 2015-12-3 01:27
5 - 6年的伸手党~
作者: ygqiang 时间: 2015-12-3 08:37
回复 14# pcl_test
多谢。。。生成的bat文件内容如下。原始的bat文件,结尾没有(rem */),能否自动删除掉呢?
@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 10 >nul 2>nul
echo 如何将最开始的ipp变量值,传送到这里来?
。。。。其他bat代码。。。。
rem */
作者: pcl_test 时间: 2015-12-3 09:26
回复 16# ygqiang
有什么影响?
作者: ygqiang 时间: 2015-12-3 09:43
回复 17# pcl_test
好吧。如果没啥影响。。。也就不管了。。。
作者: ygqiang 时间: 2015-12-3 09:44
回复 17# pcl_test
话说,(rem */),这个在bat代码结尾,是表示啥意思呢?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |