免费注册 查看新帖 |

Chinaunix

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

请教一段修改文件A属性的代码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-24 10:13 |只看该作者 |倒序浏览
自己写了一段批量修改文件A属性的代码,可是总是修改失败,始终debug不出问题,麻烦大家帮忙看一下
  1. use POSIX;
  2. use strict;
  3. use Win32::File;


  4. my $list = "list.txt";
  5. my $bat = "dir c:\\WINDOWS\\system32\\Logfiles\\W3SVC1 /A:A /b /s > ".$list;
  6. my $attr = NORMAL ;
  7. my @cmd;
  8. push @cmd,$bat;
  9. system (@cmd);
  10. undef (@cmd);
  11. open(FILES,$list);
  12. my @file_name = <FILES>;
  13. for ( my $i=0;$i<($#file_name+1);$i++)
  14. {
  15.         Win32::File::SetAttributes($file_name[$i], $attr);
  16. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-02-24 11:10 |只看该作者
dir  的 /s 选项会带进垃圾信息
还有你这个脚本这么写只能扔到c:\\WINDOWS\\system32\\Logfiles\\W3SVC1 下去执行

貌似直接批处理还来得快 。。。

论坛徽章:
0
3 [报告]
发表于 2011-02-24 11:17 |只看该作者
回复 2# xfoucs


    谢谢回复,我后来改用 attrib -a filename批处理了,但是还是想搞明白之前用Win32::File::SetAttributes时候为什么没反应呢。

论坛徽章:
0
4 [报告]
发表于 2011-02-24 14:54 |只看该作者
回复 3# czm21


for ( my $i=0;$i<($#file_name+1);$i++)
{
         chomp $file_name[$i];
         print $file_name[$i];           #看看你的文件名是什么就知道了
         Win32::File::SetAttributes($file_name[$i], $attr);
}

论坛徽章:
0
5 [报告]
发表于 2011-02-24 20:11 |只看该作者
这个应该可以吧,没装iis 所以没法测试。。。

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use File::Spec;
  4. use Win32::File;

  5. my $sysroot=$ENV{"SystemRoot"};
  6. my $www_log_dir=File::Spec->catdir($sysroot,"\\system32\\Logfiles\\W3SVC1");
  7. my $cmd='dir '.$www_log_dir.' /A:A /b /s';
  8. my @log_list=`$cmd`;
  9. my $attr=NORMAL;
  10. foreach(@log_list)
  11. {
  12.     chomp;
  13.     if(-e)
  14.     {
  15.         Win32::File::SetAttributes($_, $attr);        
  16.     }
  17.    
  18. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP