Batchdatei leerzeichen senden?

2 Antworten

Du scheinst nicht wirklich zu wissen was Du da tust.

Normalerweise fragt mysql nach dem password, wenn Du in der Kommandozeile aufforderst dies zu tun indem Du kein Passwort übergibst, jedoch den "--passwort"-Parameter setzt.

Der --passwort-parameter dient der Übergabe eines Passworts in einer Batch

mysql -u root --password="P@sswort" dbname

ist es leer dan übergib einen leerstring:

mysql -u root --password="" dbname

...oder lass einfach den pasword-parameter weg:

mysql -u root  dbname

Du kannst auch den input auf eine extererne Datei umleiten:

mysql -127.0.0.1 <"externeEingabedatei.txt"

da steht alles drin, was Du sonst von Hand eingeben würdest:

externeEingabedatei.txt

-p
P@asswort
USE databasename
SELCT * FROM table;
...blah und blubb
EXIT

Dass, was Du mit sendkeys versucht hast klappt ohnehin nicht.

ws.SendKeys "{ENTER}" ist ein VBScript befehl, den man innerhalb eines VBScripts ausführen kann, jedoch nicht direkt innerhalb einer Batch.

nur mal Infohalber ein Sendkeys script in einer Batch:

@echo off
  rem zur Demo:
  rem erzeuge  eine leere Textdatei 
(call)>"meine Datei.txt"
  rem öffne Diese im Notepad
start "" notepad "meine Datei.txt"
  rem Title des Zielfensters
set "WindowNameToActivate=meine Datei.txt - Editor"
  rem kleines JScript, welches in der Kommandozeile übergebene Zeichenfolgen  an ein  Fenster mit der zuvor festgelegten Überschrift sendet...
echo WScript.Sleep(10);var t='';for (var i = 0; i ^< WScript.Arguments.Length;i++){t=t+WScript.Arguments(i)} ;WshShell=new ActiveXObject("WScript.shell");WshShell.AppActivate('%WindowNameToActivate%');WshShell.Sendkeys(t) >"%temp%\sendkey.js"
  rem makro erzeugen (eleichtert den Aufruf)
set "sendKeys=cscript /nologo "%temp%\sendkey.js" "


  rem etwas Zeit zum öffnen geben
timeout 1 >nul
%sendKeys% "1|0|c|d|efghijklmnopqrstuvwxyz" {Enter} "blu mup" {Enter} mmahhhh murks
  rem weiterschreiben
%sendKeys% {Enter} "Weiter geht's"{Enter}
  rem mal ein paar Zeiln füllen damit wir  etwas "Fleisch"  zum Scrollen  bekommen
for /l %%a in (1,1,100) do  %sendKeys%  "%%a Mississippi" {Enter}
  rem 2 sekunden Luft holen...
timeout 2 >nul
%sendKeys% " " "...das war ein Space Weiter geht's"{Enter} 

  rem lass uns 5 mal Deine  PGUP-Taste senden
for /l %%a in (1,1,5) do %sendKeys% {PGUP}
  rem und  etwas  schreiben 
%sendKeys% "  Hallo ich habe  automatisch gescrolt"{Enter}
%sendKeys% " " "...das war ein Space Weiter geht's"{Enter} 

  rem Speichern? ( achtung in Batch  müüsen %-Zeichen ,die als Textzeichen verwendet werden sollen, verdoppelt werden)
%sendKeys% %%{F4}
echo alles gesendet....
pause

Du siehst es ist garnicht so billig mit Batch ohne externe Programme eine Taste zu senden

...und wehe das Zielfenster verliert warum auch immer den fokus, dann gehen die Tastendrücke sonstwohin

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren