If-Koubou

Vai varu palaist Windows sērijas failu bez redzamas komandu uzvednes?

Vai varu palaist Windows sērijas failu bez redzamas komandu uzvednes? (Kā)

Partijas faili ir ērts veids, kā Windows komandā izpildīt vairākas komandas, bet vai tā vienmēr ir nemanāmi palaist fonā? Lasiet, uzziniet, kā to izdarīt.

Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta Q & A tīmekļa vietņu grupa.

Jautājums

SuperUser lasītājs Jake vēlas palaist BAT failu nemanāmi, viņš raksta:

Man ir instalēta rubīna pērle, ko sauc par Redcar, ko palaiž no komandrindas. Kad tas darbojas, tas nozog apvalku, līdz tas tiek izbeigts, tāpēc man ir jāizveido jauns čaulas logs, lai turpinātu darbu komandrindas darbā. Apvalks, ko es izmantoju, ir MySysGit GITBash apvalks.

Es atklāju Redcar.bat failu, kas ir paredzēts, lai palaistu Redcar kā saīsni, es pieņemu, bet es nevēlos, lai tiktu atvērts papildu komandu uzvednes logs, kad es sāku BAT failu.

Kā es varu vadīt LPTP, neredzot tūlītēju uzvedni?

Vai ir risinājums Jake's slepenai tūlītējai vēlmei?

Atbildes

SuperUser ieguldītājs Afrazier reaģē ar sliktu un labu ziņu kombināciju:

Jūs nevarat - izpildot sērijveida failu ar iebūvēto komandu uzvedni, tiks atvērts logs, līdz tiek izslēgts sērijveida fails.

Kas tuvar veiciet pasākumus, lai pārliecinātos, ka sērijveida fails tiek izlaists cik ātri vien iespējams. Ja iespējams, mainiet sērijveida failu, lai palaistu jebkuru programmu arsākt komandu Pēc noklusējuma,sāktatgriežas nekavējoties, negaidot, kamēr programma iziet, tāpēc sērijveida fails turpinās darboties un, iespējams, nekavējoties iziet. Pāris, ka, mainot savu saīsni, lai palaistu sērijveida failu, ir minimizēta, un jūs redzēsit tikai uzdevumjoslas zibspuldzi, pat neredzot ekrānā redzamo logu.

Viens no šiem centieniem ir tas, ka, ja jūs izmantojat konsoles režīmu programmu, kas ir daudzi skriptu tulki, sērijveida fails gaidīs, kamēr programma tiks aizvērta, un, izmantojotsākt radīs jaunu konsole logu. Šajā gadījumā viss, kas jums jādara, ir operētājsistēmas Windows versija, nevis konsole balstīta tulkotāja versija - nēsākt nepieciešams. Par Perl jūs palaistuwperl.exe tā vietāperl.exe. Par Python tas irpythonw.exe tā vietāpython.exe. Ir lejupielādēta vecā win32 Ruby izplatīšanarubyw.exe, kam jādara tā pati lieta.

Galīgā iespēja ir izmantot trešās puses rīku, lai palaistu komandu uzvedni ar slēptu logu. Esmu dzirdējis par šādām lietām, bet nekad viņiem to nav izmantojis, tāpēc es nezinu par kaut ko tādu, kas tev būtu jānorāda.

Lasītāji arī norādīja viņu uz citu SuperUser pavedienu, kas parāda, kā jūs varat izmantot Visual Basic Script, lai pārsniegtu redzamības samazināšanu un tiešu slēptu CMD uzvedni. Šajā pavedienā Harijs MC paskaidro:

1. risinājums:

Saglabājiet šo vienu teksta rindiņu kā failuinvisible.vbs:

CreateObject ("Wscript.Shell"). Run "" "" & WScript.Arguments (0) un "" "", 0, False

Lai nemanāmi palaistu jebkuru programmu vai sērijveida failu, izmantojiet to šādi:

wscript.exe "C: \ Kur kur \ invisible.vbs" "C: \ Dažas citas vietas \ MyBatchFile.bat"

Lai varētu arī pārsūtīt / pārsūtīt argumentu sarakstu, izmantojiet tikai divas divkāršas pēdiņas

CreateObject ("Wscript.Shell"). Palaist "" & WScript.Arguments (0) un "", 0, False

piem .: Invisible.vbs "Kill.vbs ME.exe"

2. risinājums:

Izmantojiet komandrindas rīku, lai klusu uzsāktu procesu: Kluss.

Izmantojot jebkuru no iepriekš minētajiem risinājumiem, pamatojoties uz jūsu komforta līmeni, izmantojot VBS un trešās puses rīkus, vai ne, minimāli samazinās CMD loga redzamību vai to pilnībā noņem.

Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.