2016-10-02 3 views
0

Я пытаюсь использовать git для файлов Excel. Тем не менее, я должен разархивировать и закрепить компоненты вместе позже, чтобы выполнить это. Для этой задачи я написал сценарий, который оказался легким для MacOS. Поскольку я сам не использую Windows, я не знаю, как полностью преобразовать этот скрипт в команды Windows Power Shell правильно. Как выполнить следующую команду bash в Windows Power Shell?Windows Powershell эквивалент команды bash

find . -type f | xargs zip ../../MyExcelFile.xlsm 

Что я еще не пробовал, распаковывает файл. В bash появляется следующая команда:

unzip MyExcelFile.xlsm -d XML/MyExcelFileXML 

Это делает то же самое в Windows Power Shell или как это можно преобразовать?

Благодарим за помощь!

+0

Не понимаю, как это связано с git? Что касается создания сжатого архива, Powershell имеет команду «Compress-Archive». –

+0

Не раньше PowerShell v5. –

+0

предложите также проверить [git-bash] (https://git-for-windows.github.io/) для окон – Sundeep

ответ

1

PowerShell не имеет точного эквивалента find. Обычно вы должны использовать Get-ChildItem и эмулировать параметры фильтра команды find с фильтром Where-Object. В вашем случае, например, как это:

Get-ChildItem . -Recurse | Where-Object { -not $_.PSIsContainer } 

В PowerShell v3 или более поздней версии вы также можете сделать это заявление с только Get-ChildItem:

Get-ChildItem . -Recurse -File 

Вместо xargs вы обычно используете ForEach-Object цикл (если нисходящая команда не может сама считывать из конвейера).

Нет встроенной команды zip или unzip в Windows, хотя (по крайней мере, не до версии PowerShell v5). Вы можете использовать порты Windows для этих команд, доступных из GnuWin32, заменить команды другой внешней командой, например 7-zip, или написать функции для использования методов API для обработки ZIP-архивов (см., Например, this question).

Смежные вопросы