Discussione:
Stringa su linea di comando
(troppo vecchio per rispondere)
Fede5815
2011-07-16 10:39:44 UTC
Permalink
Sto tentando di scrivere un batch che richiami altri batch in funzione del
parametro immesso.
In sostanza vorrei che in presenza della stringa ".lnk" come parte del
parametro, fosse chiamato link.bat + parametri.

Ex: se il parametro è "pippo.doc.lnk" --> call link.bat %*
se invece fosse pippo.doc --> call file.bat %*

if "%*"=="*.lnk" call link.bat %* non funziona, così come altre cose che ho
provato.

Potrei anche usare set/p per un mini menu ma in questo caso occorrerebbe un
intervento di scelta da parte dell'utente.
Invece vorrei che il batch analizzasse da solo la stringa sulla linea di
comando e rispondesse alle condizioni poste.
Fede5815
2011-07-16 21:14:00 UTC
Permalink
"Fede5815" <***@libero.it> ha scritto nel messaggio news:4e216aaa$0$16644$***@news.tiscali.it...

Nel post precedente mi sono dimenticato di dire che l'ambiente di lavoro e'
XPHome.

Il problema era far distinguere a un batch se nella linea di comando (cioè
tra i propri parametri) fosse presente la stringa ".lnk".

Sono sicuro che il problema e' risolvibile con una riga di codice.
Personalmente ho potuto agire solo in modo artigianale, comunque
funzionante.


1)metodo

echo %*>parametri.txt
find /i ".lnk"<parametri.txt>nul

if errorlevel 1 (
call smistafileflv.bat %*
) Else (
call smistalinkflv.bat %*
)
--------------------------
2)metodo

echo %*>linea.txt
find /i ".lnk"<linea.txt>nul

if errorlevel 1 goto file
call link.bat %*
goto end

:file
call file.bat %*
:end

Entrambi funzionano ma se il codice fosse meno scolastico mi piacerebbe di
più......

:-)
gioacchino
2011-07-17 08:50:35 UTC
Permalink
Post by Fede5815
Nel post precedente mi sono dimenticato di dire che l'ambiente di lavoro
e' XPHome.
Il problema era far distinguere a un batch se nella linea di comando
(cioè tra i propri parametri) fosse presente la stringa ".lnk".
Sono sicuro che il problema e' risolvibile con una riga di codice.
Personalmente ho potuto agire solo in modo artigianale, comunque
funzionante.
Questa potrebbe essere una soluzione, ma non ho provato su WinXP. E'
comunque utilizzabile anche con il vecchio MsDos.

@echo off
if "%1"=="" goto errparam
if not "%2"=="" goto errparam
if not exist %1 goto nonesiste
echo %1|find /i ".lnk">nul
if errorlevel 2 goto errore
if errorlevel 1 goto file
echo Trovato un link
goto fine
:file
echo Trovato un file
goto fine
:nonesiste
echo Non esiste il file %1
goto fine
:errparam
echo Sintassi: %0 nomedelfile
goto fine
:errore
echo Find: Si è verificato un errore
:fine

Sostituisci echo Trovato... con la chiamata al file batch

Continua a leggere su narkive:
Loading...