

Výměna určitého textu v souboru za název souboru (kontext.menu)
Ahoj chlapi, obracím se zase s problémem, který sám nedokážu vyřešit.
Potřebuju v označených souborech změnit určitý text(s tím si poradím pomocí reg.exp)
za text, který je názvem tohoto souboru bez přípony. Dal by se využít parametr vracející
pouze název souboru %~nX u příkazu FOR, jenže už netuším, jak ho zakomponovat do celého příkazu.
Tokens a delims jsou pro mne španělská vesnice Příkaz sed už tak nějak díky Losovi a Taouchwoodovi zvládám, ale zase
v něm nemůžu použít %~nX.
Struktura souborů je následující:
0 BEGIN PGM 11_002 MM
.další řádky programu
.
.
179978 END PGM 11_002 MM
Potřebuji vybrat text mezi PGM a MM (v tomto případě 11_002) a nahradit ho názvem souboru bez přípony.
Jedná se vždy o první a poslední řádek, je to program pro CNC.
A aby toho nebylo málo, tak bych chtěl příkaz zakomponovat do kontextového menu, prostě provádět operaci jen s určitými soubory.
Ve WXP, tak W7_64bit vím, kam a co vložit za klíče, jen prostě netuším jak zapsat to hlavní, příkaz). Pokud by to nebylo na jeden řádek,
volal bych bat externě s parametrem, to by taky nevadilo.
Ještě otázka, příkaz vyvolaný z registru se chová jako spuštěný z příkaz.řádku nebo jako z bat,cmd? Kvůli zápisu proměnných % nebo %%
Díky za případné pošťouchnutí, radu, jakým směrem se vydat...
pro odeslání opravovaného souboru pravým myšem přes 'sendto' do zástupce batky. nepředpokládám název souboru s mezerou:
Díky, použil jsem SET a vyřešil jsem to prozatím takto a funguje to:
cnc.bat
a do registrů přidal toto:
zkusil jsem tohle celé nacpat do REG_SZ abych nemuset volat batku, ale asi tomu budou vadit uvozovky. Nefunguje ani bez uvozovek.
Trápí mě ještě jedna a to zásadní věc, bez které je mi tohle celé nanic. Potřebuju obsah proměnné fname převést na velká písmena.
Zkusil jsem zase použít sed, jenže se příkaz zasekne a nepokračuje, ani chyb.hláška
Poradí někdo, jak na změnu? Díky
a len tak na okraj: chodí Ti tá batka s viacerými vybranými súbormi?
Díky, ale tahle kombinace mi nefunguje. Používám GNU sed v 4.0.7
Po úpravě na
vyběhne chybová hláška:
sed: -e expression #1, char 13: Invalid reference \1 on `s' command's RHS, proto jsem přidal zpětná lomítka. Po úpravě na
chyba: sed: can't read $fname: No such file or directory. Nejspíš pracuje jen se soubory
Teď na výstup koukám... s více soubory to přes SendTo nejde, batka vezme jen první.
Přes registry (vyvolání batky) vezme všechny, jen vyběhne na moment spousta oken, což by nevadilo.
:
Našel jsem možnost na změnu velikosti, jen je to trochu krkolomné
cnc.bat
Ještě to musím otestovat s více kombinacemi názvů