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

[数值计算] [已解决]批处理自定义函数的可以实现变量的传递吗?

本帖最后由 hijackle 于 2013-5-13 22:10 编辑

大神们,问下,自定义函数的可以实现变量的传递吗?
  1. @echo off
  2. set aaa=我
  3. set bbb=你
  4. call :output %aaa%
  5. call :output %bbb%
  6. pause>nul
  7. :output %zzz%
  8. echo %zzz%>>test.txt
  9. goto :eof
复制代码
比如这个utput 我想后面加个变量,但是这个变量可以根据上面的传递过来,比如我call :output %aaa%
就会直接输出echo 我>>test.txt

可以实现吗?

>>test.txt ECHO %1

TOP

又要对不住你了,不好意思,老问题
追问下如果传递的变量中含有&,?和=咋办呢?*通配符暂时无视吧
继续上个帖子的范例吧
a.txt内容如下
singer=张信哲,张宇,韩红,陈奕迅,陈羽凡&胡海泉=羽泉,M?M,......(歌手名称很多,都是以,分割的)
song=回来,放不下心,盛夏的果实,........(歌曲名也很多,也都是以,分割的)

借用一下你之前的代码:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims==" %%a in (a.txt) do (
  3.     set n=&set any=&set "str=%%b"
  4.     set str="!str:,=" "!"
  5.     set str=!str:?=!
  6.     for %%i in (!str!) do set any=!any! "!random!!random!!random!%%~i"
  7.     for /f "tokens=2 delims=" %%c in ('(for %%i in (!any!^) do echo %%i^)^|sort') do set str=%%c
  8.     echo !str:=?!
  9.     call :output !str:=?!
  10. )
  11. exit
  12. :output
  13. >>aaa.txt echo %1
  14. goto :eof
复制代码
貌似羽泉组合永远输出不了。

TOP

本帖最后由 apang 于 2013-5-13 23:58 编辑

函数???
NB

TOP

本帖最后由 terse 于 2013-5-13 15:41 编辑

回复 3# hijackle
变通一下呢
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims==" %%a in (T.txt) do (
  3.     set any=&set "str=%%b"
  4.     set str="!str:,=" "!"
  5.     set str=!str:?=!
  6.     for %%i in (!str!) do set any=!any! "!random!!random!!random!%%~i"
  7.     for /f "tokens=2 delims=" %%c in ('(for %%i in (!any!^) do echo %%i^)^|sort') do set str=%%c
  8.     echo !str:=?!
  9.     call :output "!str:=?!"
  10. )
  11. PAUSE
  12. exit
  13. :output
  14. (for /f "tokens=*" %%i in (%1) do echo %%i)>>aaa.txt
  15. goto :eof
复制代码
1

评分人数

TOP

返回列表