新手请教:perl脚本在win32环境下运行遇到的问题!

4 views
Skip to first unread message

hhs6...@gmail.com

unread,
Jul 13, 2011, 6:06:41 AM7/13/11
to perl...@googlegroups.com
我写了一个简单的脚本,运行时需要在命令行下指定要处理的一系列文件名参数。为什么我不能用通配符(比如*,?)来指定这些参数。

Beckheng Lam

unread,
Jul 13, 2011, 6:15:11 AM7/13/11
to perl...@googlegroups.com
锟斤拷锟斤拷坪锟斤拷锟絪hell锟叫关碉拷啵★拷

锟斤拷 2011锟斤拷07锟斤拷13锟斤拷 18:06, hhs6...@gmail.com 写锟斤拷:
> 锟斤拷写锟斤拷一锟斤拷锟津单的脚憋拷锟斤拷锟斤拷锟斤拷时锟斤拷要锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷指锟斤拷要锟斤拷锟斤拷锟揭幌碉拷锟斤拷募锟斤拷锟斤拷锟斤拷为什么锟揭诧拷锟斤拷锟斤拷通锟斤拷锟斤拷锟斤拷*,锟斤拷锟斤拷锟斤拷指锟斤拷锟斤拷些锟斤拷锟斤拷
>
>


--
锟揭的诧拷锟斤拷 -- http://blog.yixinit.com/
锟筋法锟斤拷缘锟斤拷锟斤拷锟斤拷说锟斤拷锟斤拷
锟剿凤拷锟斤拷缘锟斤拷锟斤拷锟角达拷沙锟斤拷说锟斤拷

夏凯

unread,
Jul 13, 2011, 11:53:22 AM7/13/11
to perl...@googlegroups.com
shell会解析通配符,除非你用括号或者\转义。

2011/7/13 Beckheng Lam <bi.ke...@gmail.com>:
> 这个似乎是shell有关的啵。


>
> 于 2011年07月13日 18:06, hhs6...@gmail.com 写道:
>> 我写了一个简单的脚本,运行时需要在命令行下指定要处理的一系列文件名参数。为什么我不能用通配符(比如*,?)来指定这些参数。
>>
>>
>
>

> --
> 我的博客 -- http://blog.yixinit.com/
> 诸法从缘起,如来说是因。
> 彼法因缘尽,是大沙门说。
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perl...@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+...@googlegroups.com
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>
>

--
contact me:
MSN: walk...@gmail.com
GTALK: walk...@gmail.com

Matthew

unread,
Jul 14, 2011, 3:49:12 AM7/14/11
to perl...@googlegroups.com
WIN32的shell貌似不给力 ,不支持这种做法。

举个例子:我最近一直在看《Perl入门》,里边有这样的例子:
++++++++++++++++++++
$ echo *.pm
$
++++++++++++++++++++
但是我在Win32环境下是这样的
++++++++++++++++++++
D:\Desktop>echo *.pl
*.pl

D:\Desktop>
++++++++++++++++++++

不知道有没有什么其他方法来达到类似的目的?

夏凯

unread,
Jul 14, 2011, 10:32:29 AM7/14/11
to perl...@googlegroups.com
并不是windows的shell不支持*,是echo不支持*:
C:\test>echo a*
a*
C:\test>dir
2011-07-14 22:28 0 a1
2011-07-14 22:28 0 a2
2011-07-14 22:28 0 a3
2011-07-14 22:28 0 b
2011-07-14 22:28 0 c
C:\test>del a*
C:\test>dir
2011-07-14 22:28 0 b
2011-07-14 22:28 0 c
为了节省空间,无关的行删除了。
2011/7/14 Matthew <hhs6...@gmail.com>:

hhs6...@gmail.com

unread,
Jul 14, 2011, 10:40:43 AM7/14/11
to perl...@googlegroups.com
你说的我明白,我这里举例echo只是说明echo在unix上和win32上对于通配符支持的异同。
perl脚本在win32上执行对于通配符同样不支持,我这里也正是想知道有没有什么办法来实现?请赐教

-----原信息-----
发件人: 夏凯
发送: 2011/07/14, 22:32
收件人: perl...@googlegroups.com
主题: Re: [PerlChina] 新手请教:perl脚本在win32环境下运行遇到的问题!

--

夏凯

unread,
Jul 14, 2011, 10:47:10 AM7/14/11
to perl...@googlegroups.com
这个我就不知道了。
2011/7/14 hhs6...@gmail.com <hhs6...@gmail.com>:

> 你说的我明白,我这里举例echo只是说明echo在unix上和win32上对于通配符支持的异同。
> perl脚本在win32上执行对于通配符同样不支持,我这里也正是想知道有没有什么办法来实现?请赐教

woosley. xu.

unread,
Jul 14, 2011, 8:00:50 PM7/14/11
to perl...@googlegroups.com
装个cygwin吧
--
woosley.xu.    http://twitter.com/redicaps



Jianqiang Liu

unread,
Jul 15, 2011, 1:39:14 AM7/15/11
to perl...@googlegroups.com
可以用双引号把通配符包住当做参数送入脚本,脚本内用glob函数展开。

--
Jianqiang Liu
Reply all
Reply to author
Forward
0 new messages