免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1844 | 回复: 4
打印 上一主题 下一主题

[求助]脚本选择性失效!!help!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-25 22:05 |只看该作者 |倒序浏览
脚本选择性失效!!help!![求助]
  请大家帮帮忙看一个脚本!!这是一个放在ubuntu下nautilus-scripts文件夹的脚本,功能是把你想要文件复制到u盘(不支持文件夹)
问题:对于文件名有空格和文件名是中文的文件都复制不了,不知道怎样解决,望高手们赐教!
还有一个小菜的技术问题,我的脚本复制是调用系统的cp,我本来是想用FILE::COPY的copy函数的,但我试了一下,copy的第一个参数是不能用变量来代替的,而第二个就可以,不知道为什么;而我用文件句柄也不行,不过我不确定我调用的是否正确,请高手解答!!如果大伙们有什么好的意见,还请多多赐教!不胜感激,谢谢1!

#!/usr/bin/perl -w
use strict;
#use File::Copy;
my @file;
foreach(split /\n/,$ENV{NAUTILUS_SCRIPT_SELECTED_URIS}) #这是把选择的文件名付给数组,请看下边!
{
if($_=~s#^file://(/.*)$ # $1 #sx)#把fille///home这样的文件路径转为/home这样的可识别的路径
{
push @file,$_;
}
}
my $path="/media";
my @dir;
foreach(<$path/*>#挂载目录
{
if($_!~/everything.*|winxp|soft.*|cdrom0?/i)#排除我的硬盘,只留下u盘
{
push @dir,$_;
}
}
my $command;
foreach(@file)
{
$command="cp $_ $dir[0]";
system $command;          #调用cp复制文件
}
open AS,">","ddd"||die "can!\n";  #测试阶段:记录要复制的文件名,用作结果的对比!
foreach(@file)
{
print AS "$_\n";
}

nautilus-scripts文件夹
文件夹中的所有执行文件将显示在脚本菜单中。从该菜单中选择某脚本将会执行那个脚本。

当从本地文件夹中执行时,选中的文件名将会被传递给脚本;当从远程文件夹中执行时(如显示 Web 或 FTP 内容的文件夹),脚本将不会使用任何参数。

在各种情况下,下列脚本可以使用的环境变量会被 Nautilus 设置:

NAUTILUS_SCRIPT_SELECTED_FILE_PATHS:用新行分开的所选文件的路径(除非是本地文件)

NAUTILUS_SCRIPT_SELECTED_URIS:用新行分开的所选文件的 URI

NAUTILUS_SCRIPT_CURRENT_URI:当前位置的 URI

NAUTILUS_SCRIPT_WINDOW_GEOMETRY:当前窗口的位置和大小

论坛徽章:
0
2 [报告]
发表于 2008-09-26 09:33 |只看该作者
对于系统cp 用引号将文件引起来

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
3 [报告]
发表于 2008-09-26 09:57 |只看该作者
原帖由 hfahe 于 2008-9-26 09:33 发表
对于系统cp 用引号将文件引起来

同意。特殊文件名(含括号,中文,甚至特殊编码)文件的复制命令要特殊处理

论坛徽章:
0
4 [报告]
发表于 2008-09-26 10:13 |只看该作者
这代码风格,看到我这菜鸟头都晕了。

论坛徽章:
0
5 [报告]
发表于 2008-09-26 12:59 |只看该作者
大伙有没有不用system的方法解决啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP