($size) = ( ( qx{ dir /s $TargetPath | find "bytes" } )[-2] =~ /([\d,]+) bytes/ ); print "$TargetPath : $size" \\HIAWATHA\C$\test : 22,578,657 #### my ($Size)=( (qx{dir /s "$TargetPath" | %SystemRoot%\\system32\\find "bytes" })[-2]=~ /([\d,]+ 002 +) bytes/ ); #### use Win32::OLE; $fso = Win32::OLE->CreateObject('Scripting.FileSystemObject'); $f = $fso->GetFolder( '\\HIAWATHA\c$\test' ) or warn $^E; print $f->Size; 22578657 #### (@dirs, @files) = ( '//HIAWATHA/c$/test' ); scalar map{ push @{ (-d) ? \@dirs : \@files }, $_ } glob pop(@dirs) . '/*' while @dirs; $size += -s for @files; print $size; 22578657 #### perl -le " print for glob '//HIAWATHA/c$/test/*' " #### P:\test>perl -Mstrict -wle " print for glob '\\\\HIAWATHA\\c$\\test\\*' " P:\test>perl -Mstrict -wle " print for glob '\\\\HIAWATHA\\c$\\test\\*' " P:\test>perl -Mstrict -wle " print for glob '\\\\HIAWATHA\\c\$\\test\\*' " P:\test>perl -Mstrict -wle " print for glob qq[\\\\HIAWATHA\\c\$\\test\\*] " #### use File::Find; $size = 0 find(sub { $size += -s _ if -f }, '\\HIAWATHA\c$\test' ); Can't stat \HIAWATHA\c$\test: No such file or directory at (eval 4) line 1 find(sub { $size += -s _ if -f }, '\\\\HIAWATHA\\c\$\\test' ); Can't stat \\HIAWATHA\c\$\test: No such file or directory at (eval 5) line 1 find(sub { $size += -s _ if -f }, '//HIAWATHA/c$/test/' ); print $size; 22578657