in reply to Re^5: sfv checker sting crc32
in thread sfv checker sting crc32

Hmm… Concentrated on getting the script installed, and then realizing that it possibly won't work anyway…

The script seems to make heavy assumptions about its environment, probably you'd have to make several changes to make it run on Windows. OTOH, googling around leads to a Windows client that already does "SFV checking"

From the description within the script it is unclear wether the script is intended to run on the server or on the client.

Replies are listed 'Best First'.
Re^7: sfv checker sting crc32
by reptizarx3 (Novice) on Oct 21, 2016 at 11:25 UTC

    The scripts is intend to run on wingftp server for

    incoming/uploaded dirs containg sfv, but its too hard for

    me to installed and run it. It will check dirs and creating

    empty dirs like --100% sfv crc ok-- if everything is ok and

    mark bad missing files and create something like this --50% sfc crc--.

      it is supposed to be started like this
      checker path/to/download/folder
      However, it will prepend "/usr/files" to the folder name. You will have to change this within the script, as in Windows usually such a folder doesn't exist.

        Ok so i change it to

         "my $home  = "/Test01/TEST";"

        Where "Test01" is the name of the user, and "test" is the

        folder where the files will be uploaded, and save the .txt file.

        Now left the question where to put it and should i save it with extension "PL" for Perl script or leave it to text file.

        In C:\Strawberry\perl\bin there are 2 crc files:

        crc32 no extension and crc32 (Windows Bath File)

        crc32 (Windows Bath File) code:

        @rem = '--*-Perl-*-- @echo off if "%OS%" == "Windows_NT" goto WinNT perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 goto endofperl :WinNT perl -x -S %0 %* if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl if %errorlevel% == 9009 echo You do not have Perl in your PATH. if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul goto endofperl @rem '; #!/usr/bin/perl #line 15 # Computes and prints to stdout the CRC-32 values of the given files use 5.006; use strict; use lib qw( blib/lib lib ); use Archive::Zip; use FileHandle; use vars qw( $VERSION ); BEGIN { $VERSION = '1.51'; } my $totalFiles = scalar(@ARGV); foreach my $file (@ARGV) { if ( -d $file ) { warn "$0: ${file}: Is a directory\n"; next; } my $fh = FileHandle->new(); if ( !$fh->open( $file, 'r' ) ) { warn "$0: $!\n"; next; } binmode($fh); my $buffer; my $bytesRead; my $crc = 0; while ( $bytesRead = $fh->read( $buffer, 32768 ) ) { $crc = Archive::Zip::computeCRC32( $buffer, $crc ); } my $fileCrc = sprintf("%08x", $crc); printf("$fileCrc"); print("\t$file") if ( $totalFiles > 1 ); if ( $file =~ /[^[:xdigit:]]([[:xdigit:]]{8})[^[:xdigit:]]/ ) { my $filenameCrc = $1; if ( lc($filenameCrc) eq lc($fileCrc) ) { print("\tOK") } else { print("\tBAD $fileCrc != $filenameCrc"); } } print("\n"); } __END__ :endofperl

        Probably i must delete all and copy the script?