2017-05-30 1 views
-2

Ich muss einen Stapel erstellen, die alle Dateien in Ordnern und Unterordnern auflisten, die var% search% im Namen enthalten und dann mit Nummern pro Zeile auflisten Ich kann die Zeilennummer schreiben und es öffnet die angegebene Datei.Batch - Suche alle Dateien mit% search% in Namen und listet sie

Ich habe dies aber ich kann der Ausgang

dir *%search%*.* /s 

jeden Gedanken sind willkommen dank

Erledigt, unten die gesamte Arbeits Skript

@ECHO OFF 
 

 
cd.. 
 
set cdstart=%cd% 
 

 
echo. 
 
echo :::::::::::::::::::::::::::::Ultimo Ficheiro Gerado por Tipo:::::::::::::::::::::::::::::::::::::: 
 
ECho. 
 
cd %cdstart%\old\old_states\ 
 
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i 
 
echo Ultimo state: %LAST% 
 
ECHO. 
 
cd %cdstart%\old\old_Doc\ 
 
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i 
 
echo Ultimo Documentos: %LAST% 
 
ECHO. 
 
cd %cdstart%\old\old_Processo\ 
 
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i 
 
echo Ultimo Processo: %LAST% 
 
ECHO. 
 
cd %cdstart%\old\OLD_COMPRESS\ 
 
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i 
 
echo Ultimo ficheiro Comprimido: %LAST% 
 
ECHO. 
 
cd %cdstart%\old\old_Utilizadores\ 
 
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i 
 
echo Ultimo Utilizador Criado/Alterado: %LAST% 
 
ECHO. 
 

 

 
ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
 
cd %cdstart% 
 

 
ECHO. 
 
set /p search=Introduza o Id a pesquisar: 
 
ECHO. 
 
set old_mypath=%cd% 
 

 
dir /s /b **%search%*.**|findstr /n "^" 
 
dir /s /b **%search%*.**|findstr /n "^" >>output_search.txt 
 

 
echo. 
 
echo. 
 

 
set /p linha=Qual o ficheiro que deseja abrir? 
 
set /a linhaf = %linha%-1 
 
echo %linhaf% 
 
set "xprvar=" 
 
for /F "skip=%linhaf% delims=" %%i in (output_search.txt) do if not defined xprvar set "xprvar=%%i" 
 

 
if %linha% GEQ 100 goto :maiorcem 
 
if %linha% GEQ 10 goto :maiornove 
 
if %linha% LEQ 9 goto :menornove 
 

 
:menornove 
 
echo menornove 
 
set stre=%xprvar:~2% 
 
echo %stre% 
 
START notepad++.exe "%stre%" 
 
goto escolha_2 
 

 
:maiornove 
 
echo maiornove 
 
set stre=%xprvar:~3% 
 
echo %stre% 
 
START notepad++.exe "%stre%" 
 
goto escolha_2 
 

 
:maiorcem 
 
echo maiorcem 
 
set stre=%xprvar:~4% 
 
echo %stre% 
 
START notepad++.exe "%stre%" 
 
goto escolha_2 
 

 
:escolha_2 
 
del output_search.txt 
 
exit

+1

'dir/s/b * test * | findstr/n "^"'. Beantwortet Ihre Frage, aber ich fürchte, das wird Ihnen nicht helfen. – Stephan

+1

[mögliches Duplikat] (https://Stackoverflow.com/q/30592253/2152082). Akzeptierte Antwort sollte leicht an Ihre Bedürfnisse anzupassen sein. – Stephan

+0

Es funktionierte großartig, jetzt, um die Datei zu lesen, kann ich die Rückkehr zu einem TXT schreiben? Ich könnte ihm sagen, die spezifische Zeile zu bekommen und es in eine Var setzen und dann einfach starten var – razstec

Antwort

0

ändern

@ECHO OFF 
 

 
cd.. 
 
set cdstart=%cd% 
 

 
echo. 
 
echo :::::::::::::::::::::::::::::Ultimo Ficheiro Gerado por Tipo:::::::::::::::::::::::::::::::::::::: 
 
ECho. 
 
cd %cdstart%\old\old_states\ 
 
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i 
 
echo Ultimo state: %LAST% 
 
ECHO. 
 
cd %cdstart%\old\old_Doc\ 
 
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i 
 
echo Ultimo Documentos: %LAST% 
 
ECHO. 
 
cd %cdstart%\old\old_Processo\ 
 
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i 
 
echo Ultimo Processo: %LAST% 
 
ECHO. 
 
cd %cdstart%\old\OLD_COMPRESS\ 
 
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i 
 
echo Ultimo ficheiro Comprimido: %LAST% 
 
ECHO. 
 
cd %cdstart%\old\old_Utilizadores\ 
 
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i 
 
echo Ultimo Utilizador Criado/Alterado: %LAST% 
 
ECHO. 
 

 

 
ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
 
cd %cdstart% 
 

 
ECHO. 
 
set /p search=Introduza o Id a pesquisar: 
 
ECHO. 
 
set old_mypath=%cd% 
 

 
dir /s /b **%search%*.**|findstr /n "^" 
 
dir /s /b **%search%*.**|findstr /n "^" >>output_search.txt 
 

 
echo. 
 
echo. 
 

 
set /p linha=Qual o ficheiro que deseja abrir? 
 
set /a linhaf = %linha%-1 
 
echo %linhaf% 
 
set "xprvar=" 
 
for /F "skip=%linhaf% delims=" %%i in (output_search.txt) do if not defined xprvar set "xprvar=%%i" 
 

 
if %linha% GEQ 100 goto :maiorcem 
 
if %linha% GEQ 10 goto :maiornove 
 
if %linha% LEQ 9 goto :menornove 
 

 
:menornove 
 
echo menornove 
 
set stre=%xprvar:~2% 
 
echo %stre% 
 
START notepad++.exe "%stre%" 
 
goto escolha_2 
 

 
:maiornove 
 
echo maiornove 
 
set stre=%xprvar:~3% 
 
echo %stre% 
 
START notepad++.exe "%stre%" 
 
goto escolha_2 
 

 
:maiorcem 
 
echo maiorcem 
 
set stre=%xprvar:~4% 
 
echo %stre% 
 
START notepad++.exe "%stre%" 
 
goto escolha_2 
 

 
:escolha_2 
 
del output_search.txt 
 
exit

Verwandte Themen