innoextract(1) General Commands Manual innoextract(1)

innoextract - ابزاری برای استخراج بسته‌های نصبی ایجادشده توسط Inno Setup

innoextract [--extract] [--lowercase] [گزینه‌ها] [--] installers ...

innoextract --list [گزینه‌ها] [--] installers ...

innoextract --test [گزینه‌ها] [--] installers ...

دستور innoextract ابزاری است که می‌تواند فایل‌های اجرایی نصاب ایجادشده توسط Inno Setup را استخراج کند.

دستور innoextract فایل‌ها را از نصاب‌های مشخص‌شده در خط فرمان استخراج می‌کند.

برای استخراج یک بسته نصبی چندبخشی با فایل‌های داده خارجی، تنها کافی است فایل اجرایی (.exe) به عنوان آرگومان به innoextract داده شود.

در ادامه خلاصه‌ای از گزینه‌های موجود در innoextract آورده شده است. لطفاً برای توضیحات کامل به مستندات تفصیلی زیر مراجعه کنید.

گزینه‌های عمومی (Generic options):
-h --help               نمایش گزینه‌های پشتیبانی‌شده
-v --version            چاپ اطلاعات نسخه
   --license            نمایش اطلاعات مجوز
عملیات‌ها (Actions):
-t --test               فقط اعتبارسنجی چکسام‌ها، بدون نوشتن هیچ فایلی
-e --extract            استخراج فایل‌ها (عملیات پیش‌فرض)
-l --list               فقط فهرست کردن فایل‌ها، بدون نوشتن هیچ فایلی
   --list-sizes         فهرست کردن اندازه فایل‌ها
   --list-checksums     فهرست کردن چکسام فایل‌ها
-i --info               چاپ اطلاعات درباره نصاب
   --list-languages     فهرست کردن زبان‌های پشتیبانی‌شده توسط نصاب
   --gog-game-id        تشخیص شناسه بازی در GOG.com برای این نصاب
   --show-password      نمایش اطلاعات بررسی رمز عبور
   --check-password     توقف عملیات در صورت نادرست بودن رمز عبور
-V --data-version       فقط چاپ نسخه داده
اصلاح‌کننده‌ها (Modifiers):
   --codepage CODEPAGE  کدگذاری برای رشته‌های ANSI
   --collisions ACTION  نحوه مدیریت فایل‌های تکراری و تداخل‌ها
   --default-language   زبان پیش‌فرض برای تغییر نام
   --dump               تخلیه محتوا بدون تبدیل نام فایل‌ها
-L --lowercase          تبدیل نام فایل‌های استخراج‌شده به حروف کوچک
-T --timestamps TZ      منطقه زمانی برای زمان فایل‌ها یا "local" یا "none"
-d --output-dir DIR     استخراج فایل‌ها در دایرکتوری مشخص‌شده
-P --password PASSWORD  رمز عبور برای فایل‌های رمزنگاری‌شده
   --password-file FILE فایل برای بارگذاری رمز عبور از آن
-g --gog                پردازش آرشیوهای اضافی نصاب‌های GOG.com
   --no-gog-galaxy      عدم اتصال مجدد قطعات فایل‌های GOG Galaxy
-n --no-extract-unknown عدم استخراج نسخه‌های ناشناخته Inno Setup
فیلترها (Filters):
-m --exclude-temp       عدم استخراج فایل‌های موقت
   --language LANG      استخراج تنها فایل‌های مربوط به این زبان
   --language-only      فقط استخراج فایل‌های مختص یک زبان خاص
-I --include EXPR       استخراج تنها فایل‌های منطبق با این مسیر
گزینه‌های نمایش (Display options):
-q --quiet              نمایش اطلاعات کمتر
-s --silent             نمایش تنها اطلاعات خطا و هشدار
   --no-warn-unused     عدم هشدار درباره فایل‌های .bin استفاده‌نشده
-c --color[=ENABLE]     فعال/غیرفعال کردن خروجی رنگی
-p --progress[=ENABLE]  فعال/غیرفعال کردن نوار پیشرفت

--
تفسیر تمامی آرگومان‌های بعد از این گزینه به عنوان فایل، حتی اگر با خط تیره آغاز شوند.
در صورتی که رمز عبور ارائه‌شده با استفاده از گزینه --password یا --password-file با چکسام ذخیره‌شده در نصاب مطابقت نداشته باشد، پردازش متوقف می‌شود.

چکسام رمز عبور مورد استفاده برای این بررسی را می‌توان با استفاده از گزینه --show-password بازیابی کرد.

نسخه‌های غیر یونیکد Inno Setup رشته‌ها را با یک کدگذاری نامشخص ذخیره می‌کنند. به طور پیش‌فرض، innoextract کدگذاری را از فهرست زبان‌های نصاب حدس می‌زند و در صورت عدم موفقیت به Windows-1252 بازمی‌گردد. از این گزینه می‌توان برای لغو این حدس با تعیین شماره کدپیج ویندوز غیرصفر استفاده کرد.

در پلتفرم‌های غیر ویندوزی، innoextract تنظیمات محلی (locale) سیستم را نادیده گرفته و همیشه از UTF-8 به عنوان کدگذاری فایل‌سیستم و خروجی استاندارد استفاده می‌کند؛ گزینه --codepage تنها کدگذاری ورودی را تغییر می‌دهد. با این حال، استفاده از شماره کدپیج "65001" به innoextract دستور می‌دهد که فرض کند تمامی رشته‌ها از قبل به صورت UTF-8 کدگذاری شده‌اند و آن‌ها را بدون تبدیل خروجی دهد.

این گزینه روی نصاب‌های سازگار با یونیکد که همیشه از UTF-16LE استفاده می‌کنند، هیچ تأثیری ندارد. داده‌های نامعتبر UTF-16 با استفاده از کدگذاری WTF-8 نمایش داده می‌شوند که یک توسعه ساده از UTF-8 برای نمایش کدهای جانشین منفرد (unpaired surrogate code units) در UTF-16 است.

نصاب‌های Inno Setup می‌توانند حاوی فایل‌های تکراری با نام یکسان باشند. این گزینه به innoextract می‌گوید که هنگام مواجهه با چنین تداخلی چه اقدامی انجام دهد. عملیات‌های معتبر عبارتند از:
"overwrite"
تنها یکی از فایل‌های متداخل استخراج شود. این انتخاب مشابه نحوه بازنویسی فایل‌ها توسط Inno Setup در طول نصب انجام می‌شود. این حالت پیش‌فرض است.
"rename"
تغییر نام فایل‌هایی که قرار است با عمل "overwrite" بازنویسی شوند، از طریق الحاق پسوندی شامل زبان فایل، معماری آن، مؤلفه‌ای که به آن تعلق دارد و/یا یک عدد برای یکتا کردن نام فایل. پسوند زبان (در صورت کاربرد) به فایل پیش‌فرض نیز اضافه می‌شود که قرار بود با عملیات "overwrite" استخراج شود.
"rename-all"
تغییر نام تمامی فایل‌های متداخل با الحاق پسوندی شامل زبان فایل، معماری آن، مؤلفه مربوطه و/یا یک عدد برای یکتا کردن نام فایل. این پسوند کامل هم به فایل‌هایی که با عمل "overwrite" بازنویسی می‌شدند و هم به فایل‌هایی که سایر فایل‌ها را بازنویسی می‌کردند، اضافه می‌شود.
"error"
هنگام تشخیص تداخل، برنامه با خطا خارج شود.
قوانین تغییر نام:

۱. اگر مؤلفه (component) برای همه فایل‌های مجموعه تداخل (همه فایل‌های با نام یکسان) یکسان نباشد، علامت "#" به همراه شناسه مؤلفه به انتهای نام تمام فایل‌های متعلق به یک مؤلفه خاص اضافه می‌شود.

۲. اگر زبان (language) برای همه فایل‌های مجموعه تداخل یکسان نباشد، علامت "@" به همراه شناسه زبان به انتهای تمام فایل‌های مربوط به یک زبان خاص اضافه می‌شود؛ مگر آنکه آن زبان با زبان پیش‌فرض تعیین‌شده توسط --default-language مطابقت داشته باشد. اگرچه این پسوند برای زبان پیش‌فرض حذف می‌شود، اما هیچ پسوند عددی جایگزین آن نخواهد شد مگر اینکه برای یکتا کردن نام فایل لازم باشد.

۳. اگر معماری (architecture) برای تمام فایل‌های مجموعه تداخل یکسان نباشد، "@32bit" یا "@64bit" به انتهای تمام فایل‌های مربوط به یک معماری الحاق می‌شود.

۴. اگر هیچ پسوندی در مراحل قبلی اضافه نشد، یا اگر نام فایل همچنان یکتا نیست، علامت "$" به همراه کوچک‌ترین عدد صحیح (شروع از ۰) که نام فایل را یکتا سازد اضافه خواهد شد.

با عمل "rename"، مراحل ۱ و ۳ تنها روی فایل‌هایی اعمال می‌شوند که قرار بود با عمل "overwrite" بازنویسی شوند؛ در حالی که "rename-all" آن‌ها را روی تمامی فایل‌های مجموعه تداخل اعمال می‌کند.

به‌طور پیش‌فرض innoextract تلاش می‌کند تشخیص دهد که آیا ترمینال از کدهای اسکیپ شل پشتیبانی می‌کند یا خیر و خروجی رنگی را متناسب با آن فعال یا غیرفعال می‌سازد. به طور خاص، اگر هر دو stdout و stderr به یک TTY اشاره کنند، متغیر محیطی TERM برابر با "dumb" نباشد و متغیر محیطی NO_COLOR تنظیم نشده باشد، رنگ‌ها فعال خواهند شد. برای اجبار به استفاده از خروجی رنگی، مقدار 1 یا true را به --color بدهید. برای عدم نمایش کدهای رنگی، مقدار 0 یا false را پاس دهید.
چاپ نسخه داده Inno Setup برای نصاب و خروج فوری.

نسخه چاپ‌شده با این گزینه همان مقداری است که در فایل نصب ذخیره شده و ممکن است با نسخه چاپ‌شده در سایر عملیات‌ها متفاوت باشد، زیرا نسخه داده ذخیره‌شده همیشه دقیق نیست.

از این گزینه می‌توان برای تشخیص اینکه آیا یک فایل نصاب Inno Setup است یا خیر، بدون بارگذاری هدرهای فشرده‌شده استفاده کرد.

این گزینه نمی‌تواند با هیچ عملیات دیگری ترکیب شود.

تنظیم یک زبان به عنوان زبان پیش‌فرض.

همراه با --collisions=overwrite (حالت پیش‌فرض)، این گزینه انتخاب فایل برای نگهداری را به گونه‌ای تغییر می‌دهد که همیشه زبان ارائه‌شده را ترجیح دهد. در عمل، عملکرد --default-language تقریباً مشابه --language است، با این تفاوت که فایل‌های مربوط به تمام زبان‌ها در صورتی که نام‌های متفاوتی داشته باشند استخراج می‌شوند.

هنگام استفاده از گزینه --collisions=rename، گزینه --default-language زبانی را انتخاب می‌کند که فایل‌های آن در صورت امکان نام اصلی خود را حفظ کنند.

عدم تبدیل مسیرهای ویندوز به مسیرهای یونیکس و عدم جایگزینی ثابت‌ها در مسیرها.

هنگام ترکیب --dump با --extract، برنامه innoextract تضمین نمی‌کند که مسیرها به خارج از دایرکتوری مقصد اشاره نکنند. هنگام کار با فایل‌های غیرقابل اعتماد با احتیاط از این گزینه استفاده کنید.

عدم استخراج فایل‌هایی که قرار بوده در پایان فرآیند نصب حذف شوند. این فایل‌ها در فهرست فایل‌ها با [temp] مشخص شده‌اند.

این گزینه نسبت به --include و --language اولویت دارد: فایل‌های موقت هنگام استفاده از --exclude-temp هرگز استخراج نمی‌شوند، حتی اگر با زبان انتخاب‌شده یا عبارات include مطابقت داشته باشند.

استخراج تمام فایل‌ها در دایرکتوری جاری. این عملیات به طور پیش‌فرض فعال است، مگر اینکه یک یا چند مورد از عملیات‌های --list، --list-sizes، --list-checksums، --test، --list-languages، --gog-game-id، --show-password یا --check-password مشخص شده باشند.

به طور پیش‌فرض innoextract پس از مواجهه با خطاهای چکسام فایل ادامه می‌دهد. گزینه --extract می‌تواند با --test ترکیب شود تا در صورت خطای چکسام متوقف گردد.

به طور پیش‌فرض innoextract سعی می‌کند نصاب‌هایی با نسخه داده ناشناخته Inno Setup را با در نظر گرفتن نزدیک‌ترین نسخه شناخته‌شده استخراج کند. این گزینه به innoextract دستور می‌دهد که در این شرایط متوقف شود.
تلاش برای پردازش فایل‌های اضافی .bin که نام پایه مشابه نصاب دارند اما در واقع بخشی از نصاب Inno Setup نیستند. این مورد در نصاب‌های چندبخشی جدیدتر GOG.com دیده می‌شود که در آن‌ها این فایل‌های .bin آرشیوهای RAR هستند و احتمالاً با چکسام MD5 شناسه بازی رمزنگاری شده‌اند (گزینه --gog-game-id را ببینید).

استخراج این آرشیوهای RAR نیازمند در دسترس بودن ابزارهای خط فرمان rar، unrar یا lsar/unar در PATH سیستم است.

گزینه‌های --list، --test، --extract و --output-dir به unrar/unar منتقل می‌شوند، اما سایر گزینه‌ها ممکن است برای فایل‌های RAR نادیده گرفته شوند. برای آرشیوهای چندبخشی RAR، گزینه --test نیازمند یک دایرکتوری خروجی قابل نوشتن برای فایل‌های موقت است که می‌تواند با گزینه --output-dir مشخص شود. اگر دایرکتوری خروجی وجود نداشته باشد، ایجاد شده و پس از پایان تست حذف خواهد شد. دایرکتوری‌های والد ایجاد نمی‌شوند. فایل‌های موقت ایجادشده در داخل دایرکتوری همیشه حذف می‌شوند.

توجه داشته باشید که این گزینه مختص نصاب‌های GOG.com طراحی شده است. سایر نصاب‌ها ممکن است همراه با فایل‌های .bin متفرقه دیگری ارائه شوند که این گزینه قادر به مدیریت آن‌ها نباشد.

این گزینه همچنین اتصال مجدد قطعات فایل GOG Galaxy را اجباری می‌کند. برای جزئیات به گزینه --no-gog-galaxy مراجعه کنید.

برخی از نصاب‌های GOG.com حاوی فایل‌هایی در قالب GOG Galaxy هستند (تقسیم‌شده به چند بخش که هر کدام جداگانه فشرده شده‌اند) و با استفاده از اسکریپت‌های پس از نصب دوباره سرهم می‌شوند. به طور پیش‌فرض innoextract در صورت تشخیص نصاب GOG.com تلاش می‌کند چنین فایل‌هایی را سرهم کند. این گزینه آن قابلیت را غیرفعال می‌سازد.

نصاب‌های GOG.com با استفاده از فیلدهای ناشر و URL در هدرهای نصاب شناسایی می‌شوند. از گزینه --gog برای اجبار به سرهم‌سازی قطعات در تمامی نصاب‌ها استفاده کنید.

تشخیص شناسه‌ای که GOG.com برای بازی موجود در این نصاب استفاده می‌کند. این ویژگی تنها با نصاب‌های سازگار با Galaxy کار می‌کند.

این گزینه می‌تواند با --silent ترکیب شود تا تنها شناسه بازی بدون سینتکس‌های اضافی چاپ شود تا استفاده از آن در اسکریپت‌های دیگر آسان‌تر باشد.

عملیات --gog-game-id می‌تواند با --list، --test، --extract و/یا --list-languages ترکیب شود. اگر --silent و --gog-game-id با --list و/یا --list-languages ترکیب شوند، شناسه بازی (یا یک خط خالی) در خطی جداگانه قبل از فهرست فایل‌ها اما بعد از فهرست زبان‌ها چاپ می‌شود.

برای نصاب‌های چندبخشی جدیدتر GOG.com، فایل‌های .bin بخشی از نصاب Inno Setup نیستند بلکه آرشیوهای RAR هستند. برخی از این فایل‌های RAR رمزنگاری شده‌اند و رمز عبور آن‌ها همان چکسام MD5 شناسه بازی است:

innoextract --gog-game-id --silent setup_....exe | md5sum | cut -d ' ' -f 1
نمایش فهرستی از گزینه‌های پشتیبانی‌شده.
اگر این گزینه مشخص شود، innoextract تنها فایل‌هایی را پردازش می‌کند که مسیر آن‌ها با EXPR مطابقت داشته باشد. عبارت می‌تواند یک جزء منفرد از مسیر (نام فایل یا دایرکتوری) یا مجموعه‌ای از اجزای متوالی مسیر باشد که با جداکننده مسیر سیستم‌عامل (\ در ویندوز، / در پلتفرم‌های دیگر) به هم متصل شده‌اند.

عبارت همیشه با یک یا چند جزء کامل مسیر مطابقت داده می‌شود. فیلتر کردن بر اساس بخش‌هایی از نام فایل در حال حاضر پشتیبانی نمی‌شود. مطابقت به صورت غیرحساس به حروف کوچک و بزرگ انجام می‌شود.

عبارت EXPR می‌تواند شامل یک جداکننده مسیر در ابتدا باشد که در این حالت بقیه عبارت با ابتدای مسیر مقایسه می‌شود. در غیر این صورت، عبارت با هر بخشی از مسیر مطابقت داده خواهد شد.

گزینه --include می‌تواند چندین بار تکرار شود تا امکان مطابقت فایل‌ها با یکی از چندین الگو فراهم شود. اگر --include استفاده نشود، تمام فایل‌ها پردازش می‌شوند.

این یک گزینه کاربردی برای فعال کردن تمام عملیات‌هایی است که اطلاعات مربوط به نصاب را چاپ می‌کنند.

اسکریپت‌ها نباید به فرمت خروجی این گزینه وابسته باشند و باید به جای آن عملیات‌های جداگانه را فعال کنند.

در حال حاضر این گزینه موارد --list-languages، --gog-game-id و --show-password را فعال می‌کند.

استخراج تنها فایل‌های مستقل از زبان و فایل‌های مربوط به زبان ارائه‌شده. به طور پیش‌فرض تمام فایل‌ها استخراج می‌شوند.

برای صرف‌نظر کردن از فایل‌های مستقل از زبان نیز، این گزینه را با --language-only ترکیب کنید.

تنها فایل‌هایی را استخراج می‌کند که مختص زبان خاصی هستند.

این گزینه می‌تواند با --language ترکیب شود تا تنها فایل‌های یک زبان مشخص استخراج شوند.

نمایش اطلاعات مجوز برنامه.
فهرست کردن فایل‌های موجود در نصاب بدون استخراج آن‌ها.

این عملیات همچنین عملیات --list-sizes را فعال می‌کند مگر آنکه --quiet یا --silent مشخص شده باشد.

این گزینه می‌تواند با --silent ترکیب شود تا تنها نام فایل‌های موجود (هر کدام در یک خط) بدون سینتکس اضافی چاپ شود تا استفاده در سایر اسکریپت‌ها آسان‌تر باشد.

عملیات --list می‌تواند با --test، --extract، --list-languages و/یا --gog-game-id ترکیب شود تا نام فایل‌ها هنگام استخراج، حتی با وجود --silent، نمایش داده شود.

فهرست کردن چکسام فایل‌های موجود در نصاب.

این گزینه شامل عملیات --list نیز می‌شود و می‌تواند با گزینه --list-sizes ترکیب شود تا هم اندازه و هم چکسام هر فایل چاپ شود.

با گزینه --silent، چکسام فایل در ابتدای خط (اما بعد از اندازه فایل در صورت فعال بودن گزینه --list-sizes) و به دنبال آن یک فاصله چاپ خواهد شد. در غیر این صورت چکسام بعد از نام فایل چاپ می‌شود.

نوع چکسام می‌تواند یکی از مقادیر Adler32، CRC32، MD5 یا SHA-1 باشد و قبل از هش چکسام به همراه یک فاصله چاپ می‌شود. چکسام‌های Adler32 و CRC32 به صورت "0x" و به دنبال آن مقدار هگزادسیمال ۳۲ بیتی چاپ می‌شوند.

اگر سرهم‌بندی مجدد قطعات فایل GOG Galaxy با گزینه --no-gog-galaxy غیرفعال نشده باشد، فایل‌های مختلف در همان نصاب می‌توانند انواع چکسام متفاوتی داشته باشند.

فهرست کردن زبان‌های پشتیبانی‌شده توسط نصاب.

این گزینه می‌تواند با --silent ترکیب شود تا تنها شناسه‌های زبان‌ها (هر کدام در یک خط) و به دنبال آن یک فاصله و سپس نام زبان بدون سینتکس‌های اضافی چاپ شود تا پردازش آن در سایر اسکریپت‌ها راحت‌تر باشد.

عملیات --list-languages می‌تواند با --list، --test، --extract و/یا --gog-game-id ترکیب شود تا زبان‌های موجود قبل از انجام هر کار دیگری نمایش داده شوند. اگر --silent و --list-languages با --list و/یا --gog-game-id ترکیب شوند، فهرست زبان‌ها با یک خط خالی خاتمه می‌یابد و پیش از شناسه بازی و فهرست فایل‌ها قرار خواهد گرفت.

فهرست کردن اندازه غیرفشرده فایل‌های موجود در نصاب.

این گزینه شامل عملیات --list نیز می‌شود و می‌تواند با گزینه --list-checksums ترکیب شود تا هم اندازه و هم چکسام هر فایل چاپ شود.

همراه با --silent اندازه فایل بر حسب بایت در ابتدای خط و به دنبال آن یک فاصله چاپ می‌شود. در غیر این صورت، اندازه پس از نام فایل در قالبی خوانا برای انسان چاپ می‌گردد.

تبدیل نام فایل‌های ذخیره‌شده در نصاب به حروف کوچک پیش از استخراج.
استخراج تمام فایل‌ها در دایرکتوری مشخص‌شده. به طور پیش‌فرض، innoextract تمام فایل‌ها را در دایرکتوری جاری استخراج می‌کند.

اگر دایرکتوری مشخص‌شده وجود نداشته باشد، ایجاد خواهد شد. با این حال، دایرکتوری والد باید از قبل وجود داشته باشد وگرنه استخراج با شکست مواجه می‌شود.

تعیین رمز عبور برای رمزگشایی فایل‌های رمزنگاری‌شده. فرض می‌شود رمز عبور به صورت UTF-8 کدگذاری شده و در صورت نیاز به کدگذاری داخلی مورد استفاده در نصاب تبدیل می‌شود.

از گزینه --password-file برای بارگذاری رمز عبور از یک فایل یا ورودی استاندارد استفاده کنید. این گزینه نمی‌تواند با --password-file ترکیب شود.

اگر این رمز عبور با چکسام ذخیره‌شده در نصاب مطابقت نداشته باشد، از فایل‌های رمزنگاری‌شده صرف‌نظر می‌شود اما فایل‌های رمزنگاری‌نشده همچنان استخراج خواهند شد. از گزینه --check-password برای توقف کامل پردازش در صورت نادرست بودن رمز عبور استفاده کنید.

بارگذاری رمز عبور از فایل مشخص‌شده. تنها خط اول (به استثنای کاراکترهای پایان خط / شکست خط) به عنوان رمز عبور استفاده می‌شود. فرض می‌شود رمز عبور به صورت UTF-8 کدگذاری شده و در صورت نیاز به کدگذاری داخلی مورد استفاده در نصاب تبدیل می‌شود.

اگر از نام فایل ویژه "-" استفاده شود، رمز عبور از ورودی استاندارد خوانده خواهد شد.

از گزینه --password برای تعیین رمز عبور در خط فرمان استفاده کنید. این گزینه نمی‌تواند با --password ترکیب شود.

اگر این رمز عبور با چکسام ذخیره‌شده در نصاب مطابقت نداشته باشد، از فایل‌های رمزنگاری‌شده صرف‌نظر می‌شود اما فایل‌های رمزنگاری‌نشده همچنان استخراج خواهند شد. از گزینه --check-password برای توقف کامل پردازش در صورت نادرست بودن رمز عبور استفاده کنید.

به طور پیش‌فرض innoextract تلاش می‌کند تشخیص دهد که آیا ترمینال از کدهای اسکیپ شل پشتیبانی می‌کند یا خیر و نوار پیشرفت را متناسب با آن فعال یا غیرفعال می‌سازد. مقدار 1 یا true را به --progress بدهید تا نوار پیشرفت به اجبار نمایش داده شود. مقدار 0 یا false را بدهید تا نوار پیشرفت هرگز نمایش داده نشود.
خروجی با جزئیات کمتر.
نمایش چکسام $c و سالت $s مورد استفاده برای بررسی رمز عبور $p و همچنین کدگذاری رمز عبور. چکسام از چسباندن سالت با رمز عبور محاسبه می‌شود:


$c = hash($s . $p)

با گزینه --silent، نام چکسام و مقدار هش در یک خط با یک فاصله چاپ می‌شوند و سپس سالت به صورت بایت‌های هگزادسیمال و کدگذاری رمز عبور در خطوط جداگانه نمایش داده خواهند شد.

انواع چکسام می‌توانند CRC32، MD5 یا SHA-1 باشند، اگرچه از CRC32 در نصاب‌های دارای رمزنگاری استفاده نمی‌شود.

از گزینه --password یا --password-file همراه با --check-password برای بررسی مطابقت رمز عبور با این چکسام استفاده کنید.

عدم چاپ هیچ خروجی به جز خطاها و هشدارها مگر اینکه صریحاً درخواست شده باشد، و استفاده از فرمت خروجی ماشین‌خوان.

این گزینه می‌تواند با --list ترکیب شود تا تنها نام فایل‌های موجود (هر کدام در یک خط) بدون سینتکس‌های اضافی چاپ شود تا استفاده در سایر اسکریپت‌ها آسان‌تر باشد.

آزمایش یکپارچگی آرشیو بدون نوشتن هیچ فایل خروجی.

این گزینه می‌تواند با --extract ترکیب شود تا در صورت بروز خطای چکسام فایل متوقف شود.

نصاب‌های Inno Setup می‌توانند حاوی مهرهای زمانی در هر دو منطقه زمانی UTC و منطقه زمانی محلی باشند.

گزینه --timestamps مشخص می‌کند که چه منطقه زمانی باید برای تنظیم زمان این فایل‌های محلی استفاده شود.

مقادیر معتبر همان مواردی هستند که توسط tzset در متغیر محیطی TZ پذیرفته می‌شوند، به جز اینکه جهت آفست زمانی معکوس است: هر دو مقدار -T CET و -T GMT+1 (هنگامی که ساعت تابستانی فعال است) نتیجه یکسانی خواهند داد.

علاوه بر مناطق زمانی، دو مقدار ویژه نیز پذیرفته می‌شوند:

"none" عدم حفظ زمان فایل‌ها برای فایل‌های استخراج‌شده، چه برای مهرهای زمانی UTC و چه محلی. زمان فایل‌ها همان‌گونه که سیستم‌عامل هنگام ایجاد فایل‌های خروجی تنظیم کرده باقی خواهد ماند.

"local" استفاده از منطقه زمانی سیستم برای مهرهای زمانی محلی. این رفتار عادی Inno Setup است و می‌تواند همراه با متغیر محیطی TZ استفاده شود.

مقدار پیش‌فرض این گزینه UTC است که باعث می‌شود innoextract زمان فایل‌های محلی را دستکاری نکند. زمان فایل‌هایی که در فایل Inno Setup با برچسب UTC مشخص شده‌اند، صرف نظر از تنظیمات --timestamps هرگز تغییر نخواهند کرد.
چاپ شماره نسخه innoextract و نسخه‌های پشتیبانی‌شده از Inno Setup.

اگر با گزینه --silent ترکیب شود، تنها شماره نسخه چاپ می‌شود. در غیر این صورت، خروجی شامل نام (innoextract) و به دنبال آن شماره نسخه در خط اول خواهد بود و مگر اینکه گزینه --quiet مشخص شده باشد، دامنه نسخه‌های پشتیبانی‌شده نصاب Inno Setup در خط دوم نمایش داده می‌شود.

به طور پیش‌فرض، innoextract در صورت مواجهه با فایل‌های .bin که به نظر می‌رسد ممکن است بخشی از نصاب باشند اما استفاده نشده‌اند، یک هشدار چاپ می‌کند. این گزینه آن هشدار را غیرفعال می‌سازد.

مسیرها در نصاب‌های Inno Setup می‌توانند حاوی ثابت‌هایی (ارجاعات به متغیرها یا کدها) باشند که در زمان نصب بسط داده می‌شوند. ابزار innoextract تمامی این ثابت‌ها را به نام آن‌ها بسط می‌دهد و کاراکترهای ناامن را با $ جایگزین می‌کند. به عنوان مثال {app} به app بسط می‌یابد، در حالی که {code:Example} به code$Example بسط داده می‌شود.

در حال حاضر هیچ راهی برای پیکربندی این بسط به جز غیرفعال کردن آن با گزینه --dump وجود ندارد.

0
موفقیت‌آمیز
1
خطای نحو (سینتکس) یا نحوه استفاده
2+
فایل نصاب خراب یا پشتیبانی‌نشده، یا خطای ورودی/خروجی

هیچ پشتیبانی برای استخراج مؤلفه‌های منفرد وجود ندارد و پشتیبانی محدودی برای فیلتر کردن بر اساس نام موجود است.

اسکریپت‌ها و بررسی‌های همراه بسته نصبی اجرا نمی‌شوند.

نگاشت ثابت‌های Inno Setup مانند دایرکتوری برنامه به زیردایرکتوری‌ها به صورت درون‌کد (hard-coded) است.

نام‌های مربوط به قطعات داده / فایل‌های دیسک در نصاب‌های چندفایلی باید از الگوی نام‌گذاری استاندارد پیروی کنند.

cabextract(1), unar(1), unrar(1), unshield(1), tzset(3)

لطفاً خطاها را در https://innoextract.constexpr.org/issues گزارش دهید.

ابزار innoextract تحت مجوز zlib/libpng توزیع شده است. برای جزئیات به فایل LICENSE مراجعه فرمایید.

وب‌سایت پروژه در https://constexpr.org/innoextract در دسترس است.

این برنامه از کتابخانه عالی فشرده‌سازی و رفع‌فشرده‌سازی lzma/xz نوشته‌شده توسط Lasse Collin استفاده می‌کند.

Daniel Scharrer <daniel@constexpr.org>

(2020-08-09) 1.9