找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 36197|回复: 11

[文本处理] 批处理有这样通过管道传递参数的办法么?

[复制链接]
发表于 2015-11-5 12:07:49 | 显示全部楼层 |阅读模式
命令行要访问
  1. curl http://www.ip138.com:8080/search.asp?action=mobile&mobile=13888888888
复制代码
传递进来的参数是 mobile 和 13888888888

假设是
  1. echo mobile 13888888888
复制代码
获得参数(或者其他命令工具得到类似格式的),那能通过管道把这参数传下来么?

就是要
  1. echo mobile 13888888888 | curl http://www.ip138.com:8080/search.asp?action=(这里)&mobile=(这里)
复制代码
发表于 2015-11-5 12:13:07 | 显示全部楼层
call 过去不行吗
发表于 2015-11-5 12:27:59 | 显示全部楼层
最简单的就是echo到文件里再取到变量里了。
 楼主| 发表于 2015-11-5 12:39:08 | 显示全部楼层
回复 3# 依山居


    这个确实,不过很死板的看看有没有直接一条命令行完成。这样子可以多条命令利用管道处理完整件事情,连bat都不用写。
   而且也不打算用中间文件的形式作为过渡

一行命令完成所有事情,很帅啊 :lol :lol
发表于 2015-11-5 12:44:40 | 显示全部楼层
本帖最后由 pcl_test 于 2015-11-5 12:50 编辑

不明白为何要这样
直接
  1. curl http://www.ip138.com:8080/search.asp?action=mobile&mobile=13888888888
复制代码
不能?
或是
  1. set a=mobile&set b=13888888888
  2. curl http://www.ip138.com:8080/search.asp?action=%a%&mobile=%b%
复制代码
 楼主| 发表于 2015-11-5 12:56:00 | 显示全部楼层
不明白为何要这样,多此一举
直接不能?
或是
pcl_test 发表于 2015-11-5 12:44



    举的例子是指定例子而已。而现在只是突然有点极客精神,希望用命令行工具的形式完成任务而不借助于中间文件和bat。

现在做到的一个是,通过curl获取一个页面,通过html2txt或者xml或者json2csv之类的工具,取出一些元素,再利用这些元素继续curl直到完成任务再利用 > 输出结果。一行多条命令利用管道完成~~如果不需要传递参数的操作,已经可以实现了,就是传递参数这个不好弄~
发表于 2015-11-5 13:00:12 | 显示全部楼层
回复 6# shuzai

不借助于中间文件和bat,那for+变量不能?
发表于 2015-11-5 13:02:30 | 显示全部楼层
回复 6# shuzai


    你还不如自己写程序。要干啥功能都是一个程序,连参数都不用拼。
 楼主| 发表于 2015-11-5 13:08:39 | 显示全部楼层
回复  shuzai


     你还不如自己写程序。要干啥功能都是一个程序,连参数都不用拼。
依山居 发表于 2015-11-5 13:02



    想拿现有的轮子来用而已
发表于 2015-11-5 13:50:39 | 显示全部楼层
回复 6# shuzai


    Windows的管道和Linux的管道都不支持你的想法
发表于 2015-11-5 14:24:52 | 显示全部楼层
回复 9# shuzai


    玩批处理只是人生中可有可无的无关紧要的经历而已。玩得好也不会给工作多加多少钱。属于可以选跳过的。

其它的还有linux、苹果系统之类的系统可以玩,编程语言数不胜数什么ruby GO rust等等,还有我大python

很多语言包括批处理,你愿意的话都可以费心把代码写成一样。看起来就是一行命令。只不过可读性和维护性差。
发表于 2015-11-6 01:26:22 | 显示全部楼层
本帖最后由 tmplinshi 于 2015-11-6 01:27 编辑

do.bat
  1. @echo off
  2. for /f "tokens=1-10" %%a in ('findstr .*') do %*
复制代码
示例
C:\>echo mobile 13888888888 | do curl "http://www.ip138.com:8080/search.asp?action=%a&mobile=%b"

评分

参与人数 1技术 +1 收起 理由
依山居 + 1 1

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 11:17 , Processed in 0.022214 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表