CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Ответить
 • Просмотры: 1
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

т.е. скрипт RunPowerShell.vbs использует скрипт Sample.ps1 и перетаскивать исходный файл нужно именно на RunPowerShell.vbs?
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

Tosyk, ну, если у меня работает, а у Вас нет, значит, явно что-то не так.



Покажите Ваш код PowerShell с исправленными путями. Покажите Ваш код ps_chunks0_search.vbs. Покажите содержимое каталога с «все чанки у меня в одной папке, до которой я указываю путь». Упакуйте в архив Ваш sp_brady_head_mesh 00160000000000003801000070009400.MeshSet и приложите к сообщению. Покажите скриншот с:


Цитата Tosyk:



в итоге мигает чёрное окно с красным текстом.
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла
Аватара пользователя
Iska

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Iska »

я бы сделал скриншот, но как? окно ведь мигает. можно как-то запаузить его?
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

я бы сделал скриншот, но как? окно ведь мигает. можно как-то запаузить его?
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

Цитата Tosyk:



1. можно ли сделать поиск чанков рекурсивным? - если у меня в папке CHUNK будет структура сложнее одной папки
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




Можно. И сразу ответьте, что делать, если там окажется несколько файлов с подходящим именем (в разных каталогах)?




Цитата Tosyk:



2. можно ли сделать чтобы скрипт не заменял скопированный чанк если он уже есть в папке а именовал его как-то с суфиксом?
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




Можно. Как именно именовал «как-то с суфиксом»?




Цитата Tosyk:



3. можно ли добавить возможность копирования чанков с их оригиналными именами рядом с исходным файлом в папку CHUNKS?
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




Можно.




Цитата Tosyk:



4. можно ли как-то исбежать шаг разрешения выполнения подобных скриптов на компе?
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




А в чём проблема-то однократно разрешить исполнение локальных неподписанных скриптов?




Цитата Tosyk:



p.s.: можно ли как-то транслитировать этот код в auto-it и зашить в exe?
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




Полагаю, что можно.
Аватара пользователя
Iska

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Iska »

Цитата Iska:



что делать, если там окажется несколько файлов с подходящим именем (в разных каталогах)?
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла





Цитата Iska:



Можно. Как именно именовал «как-то с суфиксом»?
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




максимальная глубина, на которую я расчитываю это в папке CHUNKS будут лежать ещё две папки: CHUNKS0 и CHUNKS1. поэтому можно к файлам применять суфикс ch0 и ch1 соответственно


Цитата Iska:



А в чём проблема-то однократно разрешить исполнение локальных неподписанных скриптов?
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




однократно за сессию или за всю жизнь винды? и может ли это привести к печальным последствиям безопасности?
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

Цитата Tosyk:



максимальная глубина, на которую я расчитываю это в папке CHUNKS будут лежать ещё две папки: CHUNKS0 и CHUNKS1. поэтому можно к файлам применять суфикс ch0 и ch1 соответственно
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




Ответьте, пожалуйста, на те вопросы, которые я задавал. Ни на какие другие, не заданные мною вопросы, отвечать не нужно.




Цитата Tosyk:



однократно за сессию или за всю жизнь винды? и может ли это привести к печальным последствиям безопасности?
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




Вот
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла
я приводил две ссылки. Прочтите их. Или — прочтите ещё раз.
Аватара пользователя
Iska

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Iska »

Цитата Iska:



что делать, если там окажется несколько файлов с подходящим именем (в разных каталогах)?
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




копировать оба в исходный каталог


Цитата Iska:



Как именно именовал «как-то с суфиксом»?
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




в качестве индекса использовать имя исходной папки
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

Tosyk, чем больше я пытаюсь осмыслить все озвученные Вами хотелки, тем меньше они мне нравятся. Если реализовать всё задуманное — получится полная каша.



В общем — рекурсивный поиск и нумерация найденных дубликатов. Существующие файлы по месту назначения по-прежнему будут переписываться, не вижу никакого смысла менять данное поведение.



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

param(
    [Parameter(Mandatory = $true)][System.String]$SourceFile, 
    [System.String]$sCHUNKFolder = 'C:\Мои проекты\0167\CHUNK'
)
$aByte4Find = [System.Byte[]](0xFF, 0xFF, 0xFF, 0xFF)
if(Test-Path -Path $SourceFile -PathType Leaf) {
    $oSourceFile = [System.IO.FileInfo]$SourceFile
    if(Test-Path -Path $sCHUNKFolder -PathType Container) {
        Write-Host "[$($oSourceFile.FullName)]" -ForegroundColor Yellow
        $aByteContent = [System.IO.File]::ReadAllBytes($oSourceFile.FullName)
        $iCount = 0
        for($i = 0; $i -le $aByteContent.Length - $aByte4Find.Length - 1; $i++) {
            $bFound = $true
            for($j = 0; $j -le $aByte4Find.Length - 1; $j++) {
                if($aByteContent[$i + $j] -ne $aByte4Find[$j]) {
                    $bFound = $false
                    break
                }
            }
            if($bFound) {
                $sFoundFileName = [System.BitConverter]::ToString($aByteContent[$($i - 16) .. $($i - 1)]) -replace '-', ''
                Write-Host "`tOffset:          $i"
                Write-Host "`tFound file name: $sFoundFileName"
                $sChunkFile = "$sCHUNKFolder\$sFoundFileName.chunk"
                $cChunkFiles = @(Get-ChildItem -Path "$sCHUNKFolder\$sFoundFileName.chunk" -File -Recurse)
                if($cChunkFiles.Count) {
                    $iCount++
                    $jCount = 0
                    $cChunkFiles | ForEach-Object -Process {
                        $jCount++
                        $sDestFileName = "$($oSourceFile.BaseName)_$($iCount.ToString("00"))_$($jCount.ToString("00")).chunk"
                        Write-Host "`tFile    [$($_.FullName)] found!" -ForegroundColor Green
                        Write-Host "`tCopy to [$($oSourceFile.DirectoryName)] as [$sDestFileName]." -ForegroundColor Green
                        [System.IO.File]::Copy($sChunkFile, "$($oSourceFile.DirectoryName)\$sDestFileName", $true)
                    }
                } else {
                    Write-Host "`tFile(s) [$sFoundFileName.chunk] not found in folder [$sCHUNKFolder]!" -ForegroundColor Red
                }
                Write-Host ''
            }
        }
    } else {
        Write-Host "Can't find CHUNK folder [$sCHUNKFolder]." -ForegroundColor Red
    }
} else {
    Write-Host "Can't find source file [$SourceFile]." -ForegroundColor Red
}
Write-Host 'Press Enter to close...' -NoNewline; Read-Host | Out-Null
Ответить

Вернуться в «Скриптовые языки администрирования Windows»