+++ batch-Programmierung unter Win7 +++ Datei suchen und ausführen +++

Diskutiere +++ batch-Programmierung unter Win7 +++ Datei suchen und ausführen +++ im Windows 7 Allgemeines Forum im Bereich Windows 7; __Frage1__ Ich möchte eine bestimmte Ziel-Datei [Bsp: a.bat] auf einem Laufwerk suchen und diese Datei starten. Danach springt soll die "batch"...

  1. fbT

    fbT Neuer Benutzer

    Dabei seit:
    20.08.2011
    Beiträge:
    29
    Zustimmungen:
    0
    Version:
    Win7 Pro 64bit
    __Frage1__
    Ich möchte eine bestimmte Ziel-Datei [Bsp: a.bat] auf einem Laufwerk suchen und diese Datei starten. Danach springt soll die "batch" zurück in das vorherige Verzeichnis springen. Folgender Lösungsansatz zeigt das Verzeichnis der Ziel-Datei an, SPRINGT aber NICHT in dieses Verzeichnis um die Ziel-Datei starten zu können;
    _____________________
    @pushd
    cd\
    dir /b / /s /a "a.bat"
    start /b "" "a.bat"
    @popd
    _____________________

    Als Lösungsansatz kann ich mir vorstellen, das das "dir"-Ergebnis in einer Variable gespeichert wird und eine Zeile später regulär aufgerufen wird;
    _____________________
    dir /b /s /a "a.bat" > ???VARIABLE???
    cd %VARIABLE%
    start "" "a.bat"
    _____________________

    __Frage2__
    Gibt es im "batch" eine Möglichkeit, mehrere Befehle zu verschachteln, hintereinander zu schalten? ala: cd dir /b /s /a "a.bat"

    __Frage3__
    Was bedeutet das Zeichen "|" (ohne Anführungszeichen), innerhalb der batch-Programmierung?
     
  2. #2 areiland, 27.01.2012
    areiland

    areiland Erfahrener Benutzer
    Moderator

    Dabei seit:
    11.12.2009
    Beiträge:
    16.880
    Zustimmungen:
    2
    Version:
    Windows 10 Pro x64 Build 1511 10586.29
    System:
    970M Pro3, AMD FX6350, ATI 7730, 16GB DDR3 1600, SSD256 GB, HD502HJ, SH224BB
    Das Pipesymbol (|) stellt genau die Möglichkeit dar mehrere Befehle zu verketten.

    ...
    REM Beispiel einer Befehlverkettung
    @Echo off
    C: | cd Windows | cd Temp | Dir /a >%temp%\dir.txt
    ...

    Damit sollte Dir der Batch erst nach C: wechseln, anschliessend nach Windows, dann nach C:\Windows, dann nach C:\Windows\Temp und dann die Ausgabe von dir/a nach %temp%\dir.txt schreiben.
     
  3. fbT

    fbT Neuer Benutzer

    Dabei seit:
    20.08.2011
    Beiträge:
    29
    Zustimmungen:
    0
    Version:
    Win7 Pro 64bit
    Danke, für die Beantwortung der FRAGE 3. Wichtig, um Befehls-Zeilen zu reduzieren/verschlanken.
    Leider ist es "nur" eine Abfolge, die nacheinander Abgearbeitet wird, aber nicht beim FRAGE 1 und 2 weiter hilft.
     
  4. fbT

    fbT Neuer Benutzer

    Dabei seit:
    20.08.2011
    Beiträge:
    29
    Zustimmungen:
    0
    Version:
    Win7 Pro 64bit
    Zu FRAGE1
    ° Ausgehend, dass das Zielverzeichnis NICHT bekannt ist. Daher die Suche.
    ° Mit ">" den Pfad der Ziel-Datei in eine neue Datei zu schreiben ist viel zu umständlich. Wie kann ich statt dessen das DIR-Ergebnis direkt in einer Variable speichern?
     
  5. #5 areiland, 27.01.2012
    areiland

    areiland Erfahrener Benutzer
    Moderator

    Dabei seit:
    11.12.2009
    Beiträge:
    16.880
    Zustimmungen:
    2
    Version:
    Windows 10 Pro x64 Build 1511 10586.29
    System:
    970M Pro3, AMD FX6350, ATI 7730, 16GB DDR3 1600, SSD256 GB, HD502HJ, SH224BB
    Batches sind immer nur eine Abfolge von Befehlen - die nacheinander abgearbeitet werden! Soviel zur Verständnisfrage. Du kannst natürlich auf Variablen zurückgreifen um wiederholte Eingaben zu vereinfachen - mit "Set Dir=dir /b/s /a" würdest Du also der Variable %Dir% (Gross/Kleinschreibung egal) den Wert
    %dir /b/s/a% zuweisen.

    Die Ausgabe von Set/? >%temp%\Set.txt hilft Dir sicher weiter, die Ausgabe von Start/? >>%temp%\Set.txt, sicher auch.

    Bei einem umfangreichen Batch würde ich zuerst (wie zumeist in der Programmierung üblich) eine Variablenzuweisung durchführen.
    Also so etwa:

    Set Dir=dir /a/s/p
    Set Irgendwas=irgendwas

    Wenn Du einen Batch ausführen und nach der Abarbeitung in ein anderes Verzeichnis springen willst - dann benutze "Call" also z.B. "call a.bat". Dann wird "a.bat" abgearbeitet und anschliessend zum Ausgangsbatch zurückgekehrt. Dort kannst Du dann mit "cd" das nächste Verzeichnis anspringen. Speicherst Du den Aufruf von a.bat mit "Set sta=a.bat" in einer Variablen, dann wäre der Aufruf eben "call %sta%".
     
  6. #6 10101010, 27.01.2012
    Zuletzt bearbeitet: 27.01.2012
    10101010

    10101010 Erfahrener Benutzer

    Dabei seit:
    05.04.2010
    Beiträge:
    246
    Zustimmungen:
    0
    System:
    sony vaio notebook intel core i3 cpu (2 x 2.4 GHz) ATI Mobility Radeon HD5470
    folgendes funktiniert nur in einer batch datei

    FOR /F "usebackq delims=" %%i in (`dir /b /s /a a.bat`) do set VARIABLE=%%i
    call "%variable%"


    manuell an der befehlszeile eingegeben geht so

    FOR /F "usebackq delims=" %i in (`dir /b /s /a a.bat`) do set VARIABLE=%i
    call "%variable%"
     
  7. #7 areiland, 27.01.2012
    areiland

    areiland Erfahrener Benutzer
    Moderator

    Dabei seit:
    11.12.2009
    Beiträge:
    16.880
    Zustimmungen:
    2
    Version:
    Windows 10 Pro x64 Build 1511 10586.29
    System:
    970M Pro3, AMD FX6350, ATI 7730, 16GB DDR3 1600, SSD256 GB, HD502HJ, SH224BB
    Eigentlich - an der Befehlszeile eingegeben, muss das Prozentzeichen zur Variablendeklaration doppelt angegeben werden. War auch schon unter Dos so.
     
  8. fbT

    fbT Neuer Benutzer

    Dabei seit:
    20.08.2011
    Beiträge:
    29
    Zustimmungen:
    0
    Version:
    Win7 Pro 64bit
    Hallo 10101010,
    wenn deine Batch-Zeile irgend etwas mit meiner FRAGE zu tun hat, erkläre/beschreibe bitte alle einzelnen Schritte - damit ich´s wenigstens Ansatzweise verstehe...
     
  9. #9 10101010, 27.01.2012
    Zuletzt bearbeitet: 27.01.2012
    10101010

    10101010 Erfahrener Benutzer

    Dabei seit:
    05.04.2010
    Beiträge:
    246
    Zustimmungen:
    0
    System:
    sony vaio notebook intel core i3 cpu (2 x 2.4 GHz) ATI Mobility Radeon HD5470
    der for befehl führt einen befehl für dateien oder zeichenfolgen oder befehle aus.
    in deinem fall für den befehl dir /b /s /a a.bat bzw. dessen ausgabe.

    /F "usebackq delims=" stellt den for befehl ein.

    usebackq elaubt anführungszeichen in dem befehl der in klammern steht zu nutzen.
    delims= sagt dem for befehl, das deine dir /b /s /a a.bat ausgabe komplett in die variable geschrieben werden soll.
    will man zb. nur den laufwerksbuchstaben der ausgabe in eine variable speichern, so hätte man "usebackq delims=:" eingeben müssen, damit nur das was vor dem ersten doppelpunkt der ausgabe steht, in eine variable abgespeichert wird.
    lässt man delims= weg, so würde der for befehl nur den text, der vor dem ersten gefundenen leerzeichen steht, in eine variable abspeichern.

    %%i ist die variable in der der for befehl sein ergebnis abpeichern.

    do set VARIABLE=%%i kopiert %%i nach %VARIABLE%
     
  10. #10 areiland, 27.01.2012
    areiland

    areiland Erfahrener Benutzer
    Moderator

    Dabei seit:
    11.12.2009
    Beiträge:
    16.880
    Zustimmungen:
    2
    Version:
    Windows 10 Pro x64 Build 1511 10586.29
    System:
    970M Pro3, AMD FX6350, ATI 7730, 16GB DDR3 1600, SSD256 GB, HD502HJ, SH224BB
  11. fbT

    fbT Neuer Benutzer

    Dabei seit:
    20.08.2011
    Beiträge:
    29
    Zustimmungen:
    0
    Version:
    Win7 Pro 64bit
    Danke ihr Beiden - werde deinen Code später mal ausprobieren, 10101010.
    areiland, blanke Befehlsbeschreibung hilft erst im Nachhinein, sonst könnte ja jeder kochen, nur weil er/sie ein Kochbuch im Regal stehen hat!
     
Thema: +++ batch-Programmierung unter Win7 +++ Datei suchen und ausführen +++
Besucher kamen mit folgenden Suchen
  1. batch datei suchen und ausführen

    ,
  2. batch programmierung beispiele

    ,
  3. batch programmierung unter windows 7

    ,
  4. batch programmierung windows 7,
  5. datei suchen,
  6. batch win7,
  7. batch windows 7,
  8. batch befehle nacheinander abarbeiten,
  9. batch befehle delims,
  10. batch datei suchen und öffnen,
  11. batch programmierung laufwerk durchsuchen,
  12. win7 batch ausgabe in variable,
  13. batch befehle,
  14. batch datei ordner suchen und öffnen,
  15. batch programmierung,
  16. batch befehl datei suchen,
  17. batch laufwerk durchsuchen,
  18. batch dateien unter windows 7 suchen,
  19. batch befehle nacheinander ausführen,
  20. batch befehle datei finden,
  21. batch dateien unter windows 7 ausführen,
  22. batch Programmierung Win 7,
  23. batch alle laufwerke durchsuchen,
  24. Batch ausführen windows 7,
  25. batch ordner nacheinander durchsuchen
Die Seite wird geladen...

+++ batch-Programmierung unter Win7 +++ Datei suchen und ausführen +++ - Ähnliche Themen

  1. [Windows-7-XP-Mode; Exe]Kann Datei nicht installieren

    [Windows-7-XP-Mode; Exe]Kann Datei nicht installieren: Hallo, an anderer Stelle habe ich von meinem Treiber-Problem berichtet. Meine Idee war nun, dem Setup-Programm XP nicht nur vorzugaukeln, sondern...
  2. Ordner freigeben Win7 zu Win10

    Ordner freigeben Win7 zu Win10: Habe auf meinem Win7 vor längerer Zeit 2 Ordner freigegeben, die ich z.B. auf meinem TV einsehen kann und dies auch auf meinem neuen Laptop Win10....
  3. HILFE! Win7 startet nicht mehr mit SSD Platte

    HILFE! Win7 startet nicht mehr mit SSD Platte: Hallo, habe folgendes Phänomen: Habe als Sytemplatte eine SSD mit Win7/64 Habe kürzlich eine zweite 500GB WD Blue SSD dazu erworben, eingebaut...
  4. Die Stunden-Win7-Systemuhr geht nach Korrektur immer wieder nach.

    Die Stunden-Win7-Systemuhr geht nach Korrektur immer wieder nach.: Ich muss ständig die Stunde der Win7-Systemuhr korrigieren. Sie geht immer nach. Die Minuten bleiben immer stimmig. Ich vermute einen Zusammenhang...
  5. Vergabe „Name für eine Datei“ bei Drucken (Internet-Seite) über pdf

    Vergabe „Name für eine Datei“ bei Drucken (Internet-Seite) über pdf: Hallo allerseits, Problembeschreibung 1. dabei gehe ich über [Datei/Druckvorschau] und dort wird dann ein kleines Fenster („drucken“) ganz...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden