so ive suchte nach der Lösung für dieses Problem für eine Weile jetzt, überall ich schaue jeder nur sagt "set the compsec zu zeigen auf cmd" ... was super ist hilfreicher Grund, niemand sagt tatsächlich, wie man das macht.cmd Batch-Datei für/f schließt, comspec ist bereits gesetzt
aber wenn ich cmd öffnen, und geben Sie "Set" und drücken Sie ENTER, zeigt es ComSpec = C: \ Windows \ system32 \ cmd.exe
ich dort überprüft und sicher genug, ist cmd.exe es in es funktioniert gut. Aber für/f schließt sich immer noch, bevor irgendeine Operation ausgeführt wird.
Wie behebe ich das?
@echo off
for /f "tokens=2*" %%a in ('dir /b /s findstr "Find Me Testing"') do set "AppPath=%%~b"
set "AppPath=%AppPath%"
echo %AppPath%
for /f "tokens=2*" %%a in ('dir /b /s /a-d ^| findstr "Find Me Testing"') do set "AppPath=%%~b"
set "AppPath=%AppPath%"
echo %AppPath%
pause
for /f "usebackq" %a in ('dir /b /s /a-d ^| findstr "To Be Deleted.me"') do set fileLocation=%~pa
echo %fileLocation%
pause
pause
stop
pause
wait 50
Wie Sie sehen können, habe ich verschiedene Methoden getestet, was ich will.
Ohne den Befehl 'for/f' zu sehen, den Sie auszuführen versuchen, ist es unmöglich zu sagen. Es ist sehr gut möglich, dass die Schleife tatsächlich _should_ stoppt, bevor Sie etwas tun. – SomethingDark
Bearbeiten Sie Ihre Frage und senden Sie Ihre Batch-Datei! – Hackoo
Nicht Ihr aktuelles Problem, aber Sie müssen die Option '/ c' von findstr verwenden, um nach einer ganzen Zeichenfolge zu suchen. Im Moment suchst du nach allem, was zu 'Find',' Me', * oder * 'Testing' passt. –