Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Tesy 10. 05. 2016, 12:32:01
-
Dobry den, uz 5 dni se snazim tyto 3x skripty predelat do bataku nebo do powershellu. Ale marne,
me znalosti na to nestaci. Najde se tady nekdo natolik zkuseny ze by me s tim pomohl nebo dokonce ze by to dokazal predelat?
Skript1=build-electrum-git.sh
#!/bin/bash
# You probably need to update only this link
ELECTRUM_GIT_URL=git://github.com/spesmilo/electrum.git
BRANCH=master
NAME_ROOT=electrum
# These settings probably don't need any change
export WINEPREFIX=/opt/wine64
PYHOME=c:/python27
PYTHON="wine $PYHOME/python.exe -OO -B"
# Let's begin!
cd `dirname $0`
set -e
cd tmp
if [ -d "electrum-git" ]; then
# GIT repository found, update it
echo "Pull"
cd electrum-git
git checkout master
git pull
cd ..
else
# GIT repository not found, clone it
echo "Clone"
git clone -b $BRANCH $ELECTRUM_GIT_URL electrum-git
fi
cd electrum-git
VERSION=`git describe --tags`
echo "Last commit: $VERSION"
cd ..
rm -rf $WINEPREFIX/drive_c/electrum
cp -r electrum-git $WINEPREFIX/drive_c/electrum
cp electrum-git/LICENCE .
# add python packages (built with make_packages)
cp -r ../../../packages $WINEPREFIX/drive_c/electrum/
# add locale dir
cp -r ../../../lib/locale $WINEPREFIX/drive_c/electrum/lib/
# Build Qt resources
wine $WINEPREFIX/drive_c/Python27/Lib/site-packages/PyQt4/pyrcc4.exe C:/electrum/icons.qrc -o C:/electrum/lib/icons_rc.py
wine $WINEPREFIX/drive_c/Python27/Lib/site-packages/PyQt4/pyrcc4.exe C:/electrum/icons.qrc -o C:/electrum/gui/qt/icons_rc.py
cd ..
rm -rf dist/
# build standalone version
$PYTHON "C:/pyinstaller/pyinstaller.py" --noconfirm --ascii -w deterministic.spec
# build NSIS installer
# $VERSION could be passed to the electrum.nsi script, but this would require some rewriting in the script iself.
wine "$WINEPREFIX/drive_c/Program Files (x86)/NSIS/makensis.exe" /DPRODUCT_VERSION=$VERSION electrum.nsi
cd dist
mv electrum.exe $NAME_ROOT-$VERSION.exe
mv electrum-setup.exe $NAME_ROOT-$VERSION-setup.exe
mv electrum $NAME_ROOT-$VERSION
zip -r $NAME_ROOT-$VERSION.zip $NAME_ROOT-$VERSION
cd ..
# build portable version
cp portable.patch $WINEPREFIX/drive_c/electrum
pushd $WINEPREFIX/drive_c/electrum
patch < portable.patch
popd
$PYTHON "C:/pyinstaller/pyinstaller.py" --noconfirm --ascii -w deterministic.spec
cd dist
mv electrum.exe $NAME_ROOT-$VERSION-portable.exe
cd ..
echo "Done."
Skript2=deterministic.spec
# -*- mode: python -*-
home = 'C:\\electrum\\'
# We don't put these files in to actually include them in the script but to make the Analysis method scan them for imports
a = Analysis([home+'electrum',
home+'gui/qt/main_window.py',
home+'gui/text.py',
home+'lib/util.py',
home+'lib/wallet.py',
home+'lib/simple_config.py',
home+'lib/bitcoin.py',
home+'lib/dnssec.py',
home+'lib/commands.py',
home+'plugins/cosigner_pool/qt.py',
home+'plugins/email_requests/qt.py',
home+'plugins/trezor/qt.py',
home+'plugins/keepkey/qt.py',
home+'plugins/ledger/qt.py',
home+'packages/requests/utils.py'
],
pathex=[home+'lib', home+'gui', home+'plugins', home+'packages'],
hiddenimports=['lib', 'gui'],
hookspath=[])
##### include folder in distribution #######
def extra_datas(mydir):
def rec_glob(p, files):
import os
import glob
for d in glob.glob(p):
if os.path.isfile(d):
files.append(d)
rec_glob("%s/*" % d, files)
files = []
rec_glob("%s/*" % mydir, files)
extra_datas = []
for f in files:
d = f.split('\\')
t = ''
for a in d[2:]:
if len(t)==0:
t = a
else:
t = t+'\\'+a
extra_datas.append((t, f, 'DATA'))
return extra_datas
###########################################
# append dirs
# cacert.pem
a.datas += [ ('requests/cacert.pem', home+'packages/requests/cacert.pem', 'DATA') ]
# Py folders that are needed because of the magic import finding
a.datas += extra_datas(home+'gui')
a.datas += extra_datas(home+'lib')
a.datas += extra_datas(home+'plugins')
a.datas += extra_datas(home+'packages')
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.datas,
name=os.path.join('build\\pyi.win32\\electrum', 'electrum.exe'),
debug=False,
strip=None,
upx=False,
icon=home+'icons/electrum.ico',
console=False)
# The console True makes an annoying black box pop up, but it does make Electrum output command line commands, with this turned off no output will be given but commands can still be used
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=None,
upx=True,
debug=False,
icon=home+'icons/electrum.ico',
console=False,
name=os.path.join('dist', 'electrum'))
Skript3=portable.patch
diff --git a/electrum b/electrum
index 8c972c6..46903b7 100755
--- a/electrum
+++ b/electrum
@@ -454,6 +454,8 @@ if __name__ == '__main__':
if config_options.get('server'):
config_options['auto_connect'] = False
+ config_options['portable'] = True
+
if config_options.get('portable'):
config_options['electrum_path'] = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'electrum_data')
-
uz 5 dni se snazim tyto 3x skripty predelat do bataku nebo do powershellu.
Jednoduchsie je nainstalovat si MSYS (http://www.mingw.org/wiki/msys) a skripty zmodifikovat.
-
Unix shell neznam, ale napiste na cem jste se zasekl pri tvorbe toho BATaku a muzu poradit.
-
Vzhledem k tomu, že se v těch skriptech používá Wine, asi to bude chtít do nich zasáhnout víc.
Doporučuji nepředělávat skripty, ale jít krok za krokem a interaktivně provádět potřebnou činnost. Po každém úspěšném kroku zapíšete výsledný příkaz a parametry. Na konci (teda pokud se tam dostanete) ;) budete mít základ funkčního skriptu.
-
... a nebo windows 10 build 14332 ktery ma mit linux bash ... to by neslo ?
https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso (https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso)
-
... a nebo windows 10 build 14332 ktery ma mit linux bash ... to by neslo ?
https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso (https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso)
To by bylo hezky... Na Win 10, spoustet bash a z nej spoustet neco vine...:D
-
... a nebo windows 10 build 14332 ktery ma mit linux bash ... to by neslo ?
I ty, winex1?
-
2Tesy: Problem spociva v tom, ze to nejsou scripty. Pouziva to spoustu dalsich nastroju, ktery ve widlich trebas vubec neexistujou. Takze jediny co stim mzues udelat je to co bylo receno - napsat to znova od nuly pro widle.
-
A co to tedy je kdyz to nejsou scripty? Dal bych chtel videt tu "spoustu nastroju" ktery pro Win nejsou...
Ze by bylo nejlepsi to napsat znova je ale asi pravda. Minimalne to bude rychlejsi...
-
Tak na prepisovani bashe do batu radsi rovnou zapomente, to je naprosta tragedie, ktera vas privede do blazince. MS batch soubory jsou totalni stredovek, i kdyz si nejsem jisty, jestli i tehdy uz nemeli lepsi. To se spis podivejte, kde sehnat bash pro Widle, pokud tedy nemate ty uzasne desitky, kde by uz mel nejak byt.
Lael tady tvrdi, ze Powershel je uzasny a da se v nem udelat uplne cokoliv, takze pokud na to mate zaludek, tak se zamerte spis na to. Nebo neni k mani i nejaky python pro Widle? Idealne jako prenositelna aplikace, aby se to nemuselo vsude instalovat, pokud to ma jet na vice strojich.
-
Tak na prepisovani bashe do batu radsi rovnou zapomente, to je naprosta tragedie, ktera vas privede do blazince. MS batch soubory jsou totalni stredovek, i kdyz si nejsem jisty, jestli i tehdy uz nemeli lepsi. To se spis podivejte, kde sehnat bash pro Widle, pokud tedy nemate ty uzasne desitky, kde by uz mel nejak byt.
Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.
-
Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.
Aha. Uz jsem se chtel vydesit, ze se ve Widlich neco zmenilo. Ale podle Guuglu to na to moc nevypada. To mate na mysli tohle? http://commandwindows.com/windows7-commands.htm . Pokud ano, tak rozdil s Widlemi NT, kdyz jsem v tom naposledy delal, vidim minimalni. Zda se, ze nektere veci z Resource Kitu presunuli standarne do Widli, tot vse. Nicmene tam treba porad nevidim, cim by clovek udelal cyklus, krome prikazu for /f, ze ktereho by se clovek posral. Krome toho predpoklada, ze nadale pretrvavaji stejne problemy, jako v NT. Napriklad nefunguje presmerovani vystupu pres rouru do nasledujiciho prikazu. Pricemz predpokladam, ze rada prikazu nadale ignoruje standardni vystup a tiskne si vystupy po svem, ze to ani nejde presmerovat do souboru. Tez pochybuji, ze by se nekdo pokusil sjednotit vystupy prikazu do jakehosi jednotneho stylu a je to tedy nadale ve stylu jeden prikaz oddeluje mezerami, druhy tabelatory. Vystupy jsou zasrane informacemi, ktere skript nezajimaji, viz treba prikaz dir - srobnejte s ls. Vetsina prikazu patrne nadale poskytuje vystupu ve forme bud zcela neparsovatelne nebo parsovatelne jen se stachanovskym nasazenim.
Ano, naprogramovat se v tom ledacos da. Ale ty nervy s tim a ta prace! Vysledek bude desetkrat delsi, nez v nejakem NIXovem shellu a bude to rozhozene v hafu souboru, protoze nejake funkce a takove veci, se v tom udelat nedaji. Jiste, ve srovnani s MS DOSem je to pokrok. Ale ve srovnani s libovolnym NIXovym shellem je to nepricetna sracka.
Tedy jestli mi Guugl nezatajil nejake zasadni inovace, tak s tim, co mi predhodil, se muzete jit zahrabat. V tom se normalne psat neda, ledaze byste byl masochista a nevadilo vam, ze se kazdy den aspon jednou poserete.
BTW, ty vase veci o stovkach radku by v Bashi mozna vysly na desitky i min. Ja v tom take napsal sracky o stovkach radku a rikam: jiz nikdy. Proto pisi, ze tazatel ma na prepis do widlobatche zapomenout. V tom se totiz neda najit zadna obdoba NIXove konstrukce a clovek bude travit vetsinu casu tim, ze bude vymyslet, jak by to obesel a nasledne tim, jak by proparsoval vystupy a nezesilel. Ve vysledku mozna sesmoli neco, co i funguje, ale nikdo nebude vedet proc, protoze se v tom bordelu uz ani on sam nevyzna.
Jestli tuhle MSsracku chcete srovnavat s nekterym shellem na Linuxu, tak vam muselo preskocit anebo jste v tom linuxovem shellu nikdy nenapsal nebo aspon nevidel ani radku.
-
Tak na prepisovani bashe do batu radsi rovnou zapomente, to je naprosta tragedie, ktera vas privede do blazince. MS batch soubory jsou totalni stredovek, i kdyz si nejsem jisty, jestli i tehdy uz nemeli lepsi. To se spis podivejte, kde sehnat bash pro Widle, pokud tedy nemate ty uzasne desitky, kde by uz mel nejak byt.
Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.
Teď ale ještě záleží, zda jste totéž programoval v bashi. Moje zkušenost je ta, že bash má mnohem lepší možnosti, než cmd. U powershellu to může být zas opačně, ale ten neznám, takže nevím.
-
Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.
Aha. Uz jsem se chtel vydesit, ze se ve Widlich neco zmenilo. Ale podle Guuglu to na to moc nevypada. To mate na mysli tohle? http://commandwindows.com/windows7-commands.htm . Pokud ano, tak rozdil s Widlemi NT, kdyz jsem v tom naposledy delal, vidim minimalni. Zda se, ze nektere veci z Resource Kitu presunuli standarne do Widli, tot vse. Nicmene tam treba porad nevidim, cim by clovek udelal cyklus, krome prikazu for /f, ze ktereho by se clovek posral. Krome toho predpoklada, ze nadale pretrvavaji stejne problemy, jako v NT. Napriklad nefunguje presmerovani vystupu pres rouru do nasledujiciho prikazu. Pricemz predpokladam, ze rada prikazu nadale ignoruje standardni vystup a tiskne si vystupy po svem, ze to ani nejde presmerovat do souboru. Tez pochybuji, ze by se nekdo pokusil sjednotit vystupy prikazu do jakehosi jednotneho stylu a je to tedy nadale ve stylu jeden prikaz oddeluje mezerami, druhy tabelatory. Vystupy jsou zasrane informacemi, ktere skript nezajimaji, viz treba prikaz dir - srobnejte s ls. Vetsina prikazu patrne nadale poskytuje vystupu ve forme bud zcela neparsovatelne nebo parsovatelne jen se stachanovskym nasazenim.
Ano, naprogramovat se v tom ledacos da. Ale ty nervy s tim a ta prace! Vysledek bude desetkrat delsi, nez v nejakem NIXovem shellu a bude to rozhozene v hafu souboru, protoze nejake funkce a takove veci, se v tom udelat nedaji. Jiste, ve srovnani s MS DOSem je to pokrok. Ale ve srovnani s libovolnym NIXovym shellem je to nepricetna sracka.
Tedy jestli mi Guugl nezatajil nejake zasadni inovace, tak s tim, co mi predhodil, se muzete jit zahrabat. V tom se normalne psat neda, ledaze byste byl masochista a nevadilo vam, ze se kazdy den aspon jednou poserete.
BTW, ty vase veci o stovkach radku by v Bashi mozna vysly na desitky i min. Ja v tom take napsal sracky o stovkach radku a rikam: jiz nikdy. Proto pisi, ze tazatel ma na prepis do widlobatche zapomenout. V tom se totiz neda najit zadna obdoba NIXove konstrukce a clovek bude travit vetsinu casu tim, ze bude vymyslet, jak by to obesel a nasledne tim, jak by proparsoval vystupy a nezesilel. Ve vysledku mozna sesmoli neco, co i funguje, ale nikdo nebude vedet proc, protoze se v tom bordelu uz ani on sam nevyzna.
Jestli tuhle MSsracku chcete srovnavat s nekterym shellem na Linuxu, tak vam muselo preskocit anebo jste v tom linuxovem shellu nikdy nenapsal nebo aspon nevidel ani radku.
Moh bych to radek po radku vyvratit, ale prisel jsem prave z baru v povznesene nalade a nemam duvod si ji kazit. Tak jen zopakuji ze nevite o cem pisete....
-
Tak na prepisovani bashe do batu radsi rovnou zapomente, to je naprosta tragedie, ktera vas privede do blazince. MS batch soubory jsou totalni stredovek, i kdyz si nejsem jisty, jestli i tehdy uz nemeli lepsi. To se spis podivejte, kde sehnat bash pro Widle, pokud tedy nemate ty uzasne desitky, kde by uz mel nejak byt.
Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.
Teď ale ještě záleží, zda jste totéž programoval v bashi. Moje zkušenost je ta, že bash má mnohem lepší možnosti, než cmd. U powershellu to může být zas opačně, ale ten neznám, takže nevím.
Jenze tenhle thread neni o tom jestli je lepsi bash nebo win shell, tazatel chtel poradit s prevodem bash scriptu do win console, cehoz zde nekteri zneuzili k off-topic protlacovani svych priorit v shell scriptingu a pomluvam win shellu i za cenu prokazatelnych nepravd. Ale to je u bLivnuxaku zrejme normalni, naflusat na MS za jakoukoliv cenu...
A o deset let stare objektove pipe (powershell) Linux jeste ani neslysel (pokud pomineme veci tretich stran jako Python)
-
Tak na prepisovani bashe do batu radsi rovnou zapomente, to je naprosta tragedie, ktera vas privede do blazince. MS batch soubory jsou totalni stredovek, i kdyz si nejsem jisty, jestli i tehdy uz nemeli lepsi. To se spis podivejte, kde sehnat bash pro Widle, pokud tedy nemate ty uzasne desitky, kde by uz mel nejak byt.
Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.
Teď ale ještě záleží, zda jste totéž programoval v bashi. Moje zkušenost je ta, že bash má mnohem lepší možnosti, než cmd. U powershellu to může být zas opačně, ale ten neznám, takže nevím.
Jenze tenhle thread neni o tom jestli je lepsi bash nebo win shell, tazatel chtel poradit s prevodem bash scriptu do win console, cehoz zde nekteri zneuzili k off-topic protlacovani svych priorit v shell scriptingu a pomluvam win shellu i za cenu prokazatelnych nepravd. Ale to je u bLivnuxaku zrejme normalni, naflusat na MS za jakoukoliv cenu...
A o deset let stare objektove pipe (powershell) Linux jeste ani neslysel (pokud pomineme veci tretich stran jako Python)
Laeli, běž už konečně do (_!_).
-
Ahoj.
Toto je "otrocký" prepis prvého skriptu. Nielen že je takmer isté, že nebude fungovať, mohol by dokonca škodiť (Varovanie!). Ale môžeš ho použiť ako základ pre ladenie :)
build-electrum-git.cmd:
@echo off
REM You probably need to update only this link
set ELECTRUM_GIT_URL=git://github.com/spesmilo/electrum.git
set BRANCH=master
set NAME_ROOT=electrum
REM These settings probably don't need any change
set PYHOME=c:\python27
PYTHON=%PYHOME%\python.exe -OO -B
REM Let's begin!
cd %~dp0
rem Toto nema ekvivalent (!!!): set -e
cd tmp
set T=electrum-git\__test__%RANDOM%
echo. %T%
if exist %T% goto :GIT_REPO_EXIST
REM GIT repository not found, clone it
echo Clone
git clone -b %BRANCH% %ELECTRUM_GIT_URL% electrum-git
goto :GIT_REPO_DONE
:GIT_REPO_EXIST
del %T%
REM GIT repository found, update it
echo Pull
cd electrum-git
git checkout master
git pull
cd ..
:GIT_REPO_DONE
cd electrum-git
set VERSION=
for /F "usebackq tokens=*" %%Z in (`git describe --tags`) do set VERSION=%%Z
echo Last commit: %VERSION%
cd ..
del /F /S /Q C:\electrum
xcopy electrum-git C:\electrum /S /Q /H /R /Y
copy /b electrum-git/LICENCE .
# add python packages (built with make_packages)
xcopy ../../../packages C:\electrum\ /S /Q /H /R /Y
# add locale dir
xcopy ../../../lib/locale C:\electrum\lib\ /S /Q /H /R /Y
# Build Qt resources
C:\Python27\Lib\site-packages\PyQt4\pyrcc4.exe C:\electrum\icons.qrc -o C:\electrum\lib\icons_rc.py
C:\Python27\Lib\site-packages\PyQt4\pyrcc4.exe C:\electrum\icons.qrc -o C:\electrum\gui\qt\icons_rc.py
cd ..
del /F /S /Q dist/
# build standalone version
$PYTHON C:\pyinstaller\pyinstaller.py --noconfirm --ascii -w deterministic.spec
# build NSIS installer
# $VERSION could be passed to the electrum.nsi script, but this would require some rewriting in the script iself.
C:\Program Files (x86)\NSIS\makensis.exe" /DPRODUCT_VERSION=%VERSION% electrum.nsi
cd dist
move electrum.exe %NAME_ROOT%-%VERSION%.exe
move electrum-setup.exe %NAME_ROOT%-%VERSION%-setup.exe
move electrum %NAME_ROOT%-%VERSION%
zip -r %NAME_ROOT%-%VERSION%.zip %NAME_ROOT%-%VERSION%
cd ..
# build portable version
copy /b portable.patch C:\electrum
pushd C:\electrum
patch < portable.patch
popd
$PYTHON C:\pyinstaller\pyinstaller.py --noconfirm --ascii -w deterministic.spec
cd dist
move electrum.exe %NAME_ROOT%-%VERSION%-portable.exe
cd ..
echo Done.
Druhý skript je python, nemyslím si, že by potreboval nejaké úpravy (nepoznám python).
Tretia vec je diff, tiež bez úprav.
-
Sakra, v druhej polovici som zabudol prepísať komentáre # na REM :-)
-
rem Toto nema ekvivalent (!!!): set -e
Pokud dobre chapu vyznam "-e" ze to pri jakekoliv chybe okamzite ukonci script, da se to nahradit nejak takhle:
command || exit /B
Pokud by tam byly nejake CALLy (jakoze je tam aktualne nevidim), je treba EXITy prislusne retezit.
-
Jenze tenhle thread neni o tom jestli je lepsi bash nebo win shell, tazatel chtel poradit s prevodem bash scriptu do win console, cehoz zde nekteri zneuzili k off-topic protlacovani svych priorit v shell scriptingu a pomluvam win shellu i za cenu prokazatelnych nepravd. Ale to je u bLivnuxaku zrejme normalni, naflusat na MS za jakoukoliv cenu...
Prosim te, nebud skromny a prispej svou trochou k osvete a napis, cim je ten batch v cmd tak dobry, ze jsem to nepochopil. Tazateli to jiste pomuze najit spravnou cestu, jak ty skripty prepsat. Co me se tyka, tak prepisovani do cmd by bylo o nervy a je lepsi se o to nepokouset a radsi se rovnou protrpet Powershellem.
-
A co to tedy je kdyz to nejsou scripty? Dal bych chtel videt tu "spoustu nastroju" ktery pro Win nejsou...
Ze by bylo nejlepsi to napsat znova je ale asi pravda. Minimalne to bude rychlejsi...
On je bezne ve widlich trebas diff? Vazne?
...
Python i perl ... a da se to pak pustit proste jako parametr ty binarky ... jenze stejne bys to musel prepsat a stejne narazis na to, ze nektery veci proste nemas.
Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.
Jestli tu nekdo absolutne netusi tak zjevne ty, cmd je alias pro bat.
Tedy jestli mi Guugl nezatajil nejake zasadni inovace, tak s tim, co mi predhodil, se muzete jit zahrabat. V tom se normalne psat neda, ledaze byste byl masochista a nevadilo vam, ze se kazdy den aspon jednou poserete.
Neboj, nezatajil ... je to porad stejna sracka. A PS je 10x horsi. Protoze tam sice hypoteticky muzes delat lecos, ale na na kazdym druhym kroku narazis na to, ze nemas nejakej modul, kterej neni defaultni soucasti widli ... takze to co udelat chces, udelat nejde. A samo, jako admin nemas pravo pustit script ... treba ze sitovyho disku. To ma prece logiku ne?
-
A co to tedy je kdyz to nejsou scripty? Dal bych chtel videt tu "spoustu nastroju" ktery pro Win nejsou...
Ze by bylo nejlepsi to napsat znova je ale asi pravda. Minimalne to bude rychlejsi...
On je bezne ve widlich trebas diff? Vazne?
...
Python i perl ... a da se to pak pustit proste jako parametr ty binarky ... jenze stejne bys to musel prepsat a stejne narazis na to, ze nektery veci proste nemas.
Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.
Jestli tu nekdo absolutne netusi tak zjevne ty, cmd je alias pro bat.
Tedy jestli mi Guugl nezatajil nejake zasadni inovace, tak s tim, co mi predhodil, se muzete jit zahrabat. V tom se normalne psat neda, ledaze byste byl masochista a nevadilo vam, ze se kazdy den aspon jednou poserete.
Neboj, nezatajil ... je to porad stejna sracka. A PS je 10x horsi. Protoze tam sice hypoteticky muzes delat lecos, ale na na kazdym druhym kroku narazis na to, ze nemas nejakej modul, kterej neni defaultni soucasti widli ... takze to co udelat chces, udelat nejde. A samo, jako admin nemas pravo pustit script ... treba ze sitovyho disku. To ma prece logiku ne?
zkuste prikaz FC, pokud Vam nedostacuje tak http://gnuwin32.sourceforge.net/packages/diffutils.htm
CMD neni alias pro BAT, pripona cmd oznacuje scripty pro 32bitovy interpret cmd.exe, pripona bat oznacuje soubory pro 16bitovy command.com (v 64bitovych win uz neni obsazen). 32bitova konzole ma ruzne urovne rozsireni, ktere zjistite vypsanim promenne %cmdextversion% a ktere nejsou zpetne kompatibilni.
Ze nelze pustit script ze sitoveho disku jste vzal kde?
C:\>echo echo ahoj > Z:\test.cmd
C:\>z:\test.cmd
C:\>echo ahoj
ahoj
Nejake dalsi bLivnuxacke lzi by nebyly?
-
Jednoduchsie je nainstalovat si MSYS (http://www.mingw.org/wiki/msys) a skripty zmodifikovat.
MSYS obsahuje bash a daju sa z neho priamo spustat aj windows *.exe.
Takze mas Bash pre Windows a ten skript by mal s malymi upravami bezat.
Na spojazdnenie tych skriptov bude zrejme treba stiahnut aj git for windows (https://git-for-windows.github.io/), ktory by mal obsahovat taky isty Bash ako MinGW/MSYS.
Co sa tyka porovnania, Windows cmd je neporovnatelne horsi ako Unix shell.
Kym som nepoznal MSYS, pouzival som dlhe roky na windows REXX, ktorym sa da dobre rozsirit slaby prikazovy jazyk windows.
PowerShell som skusal tiez - a viac krat, ale vzdy som mal z neho dost zly dojem.
-
CMD neni alias pro BAT, pripona cmd oznacuje scripty pro 32bitovy interpret cmd.exe, pripona bat oznacuje soubory pro 16bitovy command.com (v 64bitovych win uz neni obsazen). 32bitova konzole ma ruzne urovne rozsireni, ktere zjistite vypsanim promenne %cmdextversion% a ktere nejsou zpetne kompatibilni.
To je uplne jedno. Dulezite je to, ze i kdyz to budu psat do souboru s priponou cmd, porad budu mit k dispozici naprosto desny skriptovaci jazyk, tu i tam pozaplatovany prikazy, ktere kdysi byly extra v Resource Kitu.
-
...
Nejake dalsi bLivnuxacke lzi by nebyly?
Kreten jako ty kterej netusi co zvani nemuze samo pochopit, ze je rec o powershellu zejo ...
cmd JE bat, vzdycky byl.
-
...
Nejake dalsi bLivnuxacke lzi by nebyly?
Kreten jako ty kterej netusi co zvani nemuze samo pochopit, ze je rec o powershellu zejo ...
cmd JE bat, vzdycky byl.
Nemate pravdu. Pripona shell scriptu v systemu Windows rozhoduje ktery interpret bude pouzit pro jeho beh. Interpret cmd.exe je vyspelejsi nastupce programu command.com Ve verzich windows s jadrem NT je defaultni interpret scriptu obou typu program cmd.exe, command.com je pritomny pouze ve 32bitovych verzich OS s jadrem NT, ale jeho pouziti musite pripadne specifikovat (defaultne se nepouziva). V 64bitovych verzich OS uz neni vubec pritomen.
A script that is designed for cmd.exe can be named .cmd to prevent accidental execution on Windows 9x.
Here is a list of cmd.exe features that are not supported by command.com:
Long filenames (exceeding the 8.3 format)
Command history
Tab completion
Escape character: ^ (Use for: \ & | > < ^)
Directory stack: PUSHD/POPD
Integer arithmetic: SET /A i+=1
Search/Replace/Substring: SET %varname:expression%
Command substitution: FOR /F (existed before, has been enhanced)
Functions: CALL :label
http://stackoverflow.com/questions/148968/windows-batch-files-bat-vs-cmd/149918#149918
-
Here is a list of cmd.exe features that are not supported by command.com:
Long filenames (exceeding the 8.3 format)
Command history
Tab completion
Escape character: ^ (Use for: \ & | > < ^)
Directory stack: PUSHD/POPD
Integer arithmetic: SET /A i+=1
Search/Replace/Substring: SET %varname:expression%
Command substitution: FOR /F (existed before, has been enhanced)
Functions: CALL :label
[/quote]
Tak to jo, tohle z toho dela skvely skriptovaci jazyk. Uz se nemuzu dockat, az to nekdo naportuje na Linux.
-
Tak to jo, tohle z toho dela skvely skriptovaci jazyk. Uz se nemuzu dockat, az to nekdo naportuje na Linux.
wine cmd
a muzes slavit nebo mlatit hlavou do zdi :-D
-
Jedina odpoved, ktera opravdu tazateli pomuze, je ta od "Vlado", s tim, ze opravdu chybi komentare v DOS like stylu od radku:
# add python packages (built with make_packages)
Ahoj.
Toto je "otrocký" prepis prvého skriptu. Nielen že je takmer isté, že nebude fungovať, mohol by dokonca škodiť (Varovanie!). Ale môžeš ho použiť ako základ pre ladenie :)
build-electrum-git.cmd:
@echo off
REM You probably need to update only this link
set ELECTRUM_GIT_URL=git://github.com/spesmilo/electrum.git
set BRANCH=master
set NAME_ROOT=electrum
REM These settings probably don't need any change
set PYHOME=c:\python27
PYTHON=%PYHOME%\python.exe -OO -B
REM Let's begin!
cd %~dp0
rem Toto nema ekvivalent (!!!): set -e
cd tmp
set T=electrum-git\__test__%RANDOM%
echo. %T%
if exist %T% goto :GIT_REPO_EXIST
REM GIT repository not found, clone it
echo Clone
git clone -b %BRANCH% %ELECTRUM_GIT_URL% electrum-git
goto :GIT_REPO_DONE
:GIT_REPO_EXIST
del %T%
REM GIT repository found, update it
echo Pull
cd electrum-git
git checkout master
git pull
cd ..
:GIT_REPO_DONE
cd electrum-git
set VERSION=
for /F "usebackq tokens=*" %%Z in (`git describe --tags`) do set VERSION=%%Z
echo Last commit: %VERSION%
cd ..
del /F /S /Q C:\electrum
xcopy electrum-git C:\electrum /S /Q /H /R /Y
copy /b electrum-git/LICENCE .
# add python packages (built with make_packages)
xcopy ../../../packages C:\electrum\ /S /Q /H /R /Y
# add locale dir
xcopy ../../../lib/locale C:\electrum\lib\ /S /Q /H /R /Y
# Build Qt resources
C:\Python27\Lib\site-packages\PyQt4\pyrcc4.exe C:\electrum\icons.qrc -o C:\electrum\lib\icons_rc.py
C:\Python27\Lib\site-packages\PyQt4\pyrcc4.exe C:\electrum\icons.qrc -o C:\electrum\gui\qt\icons_rc.py
cd ..
del /F /S /Q dist/
# build standalone version
$PYTHON C:\pyinstaller\pyinstaller.py --noconfirm --ascii -w deterministic.spec
# build NSIS installer
# $VERSION could be passed to the electrum.nsi script, but this would require some rewriting in the script iself.
C:\Program Files (x86)\NSIS\makensis.exe" /DPRODUCT_VERSION=%VERSION% electrum.nsi
cd dist
move electrum.exe %NAME_ROOT%-%VERSION%.exe
move electrum-setup.exe %NAME_ROOT%-%VERSION%-setup.exe
move electrum %NAME_ROOT%-%VERSION%
zip -r %NAME_ROOT%-%VERSION%.zip %NAME_ROOT%-%VERSION%
cd ..
# build portable version
copy /b portable.patch C:\electrum
pushd C:\electrum
patch < portable.patch
popd
$PYTHON C:\pyinstaller\pyinstaller.py --noconfirm --ascii -w deterministic.spec
cd dist
move electrum.exe %NAME_ROOT%-%VERSION%-portable.exe
cd ..
echo Done.
Druhý skript je python, nemyslím si, že by potreboval nejaké úpravy (nepoznám python).
Tretia vec je diff, tiež bez úprav.
Pomohlo to? Nebo je potreba dalsi pomoci?
Neslo by to v bashi pres CygWin (jednou jsem jednoho kolegu slysel jinemu kolegovi rikat: "Az se Te nekdo zepta, co je nejlepsi program na Windows, tak odpovez, ze to je CygWin") :)
-
...
cmd JE bat, vzdycky byl.
Spíše nikdy nebyl, ne? Princip cmd zkopírovali do MSW z OS/2, ale tam se v něm dalo programovat v REXXu, což samozřejmě MS od IBM nechtěl či nemohl zkopírovat (ač existuje interpret Regina).
-
Ach jo, to je flame...
Zjistěte si, jak udělat hybridní powershell/cmd script - vyřeší to problémy se spouštěním scriptu...
no a přepsat do powershell... je to sice vopruz a kopa nových věcí, co se musí pochopit...
ale v powershell máte sílu celého .NET, dokonce můžete načíst přímo ve scriptu C# zdrojový kód...
-
pr> jenze to tady nechteji slyset, ze svet neni cernobily a musis delat i s vecma co treba z politickych nebo davno neplatnych duvodu nemusis :-)
A vem si, ze se objevuji takove veci http://developerblog.redhat.com/2015/11/04/red-hat-microsoft-making-dot-net-on-linux-for-enterprises/ to musi skakat uz pak asi rovno uz oken jako burziani :D