Из вашего описания звучит, что вы пытаетесь вставить хук pre-receive
в ваш локальный репозиторий. Это не так, как надо - крючок pre-receive
должен быть на вашем пульте. Если вы хотите запустить что-то локально, прежде чем нажать, используйте хук pre-push
.
В документации есть несколько других хуков, которые вы также можете найти полезными.
Если Вы в сценарии пакетной обработки, можно использовать приемы переменной аргумента для получения размера файла:
filesize.bat:
@echo off
echo %~z1
Это дает результаты как те, Вы предлагаете в своем вопросе.
Тип
help call
в командной строке для всех сумасшедших переменных опций управления. Также см. эта статья для получения дополнительной информации.
Редактирование: Это только работает в Windows 2000 и позже
Так как Вы используете XP, Windows PowerShell является опцией.
(Get-Item filespec ).Length
или как функция
function Get-FileLength { (Get-Item $args).Length }
Get-FileLength filespec
Если Вы не хотите делать это в сценарии пакетной обработки, можно сделать это из командной строки как это:
for %I in (test.jpg) do @echo %~zI
Ужасный, но это работает. Можно также передать в маске файла для получения списка больше чем для одного файла:
for %I in (*.doc) do @echo %~znI
отобразит размер, имя файла каждого.DOC файла.
В Powershell можно сделать:
$imageObj = New-Object System.IO.FileInfo("C:\test.jpg")
$imageObj.Length
В PowerShell вы должны сделать следующее:
(Get-ChildItem C:\TEMP\file1.txt).Length