Por que 'localizar' imprimir barras?

1

Eu tenho o seguinte comando:

find Acc*\bin\Debug\*.pdb > temp.txt

Olhando no temp.txt, eu tenho:

Accounting/bin/Debug/Accounting.pdb
Accounting/bin/Debug/BackendProcess.pdb

Observe as barras. Por que ele gera nomes de arquivos como este? E como posso obtê-lo para gerar barras invertidas, para que eu possa usar del nesses arquivos?

    
por Der Hochstapler 07.06.2010 / 11:20

4 respostas

2

encontrar procura por uma string de pesquisa em arquivos. Talvez você esteja procurando por algo como dir *.pdb /S /B > temp.txt em seu lugar?

    
por 07.06.2010 / 11:27
1

Eu acho que você usou algum tipo de porta para encontrar (1) no DOS. se você encontrar, eu acho que você também pode ter sed também ... e então ...

find condition | sed 's///\/g'

isso deve fazer o trabalho.

caso contrário, siga o que @Johannes Rössel disse.

    
por 07.06.2010 / 11:52
0

Estou procurando listar os arquivos com os curingas que mencionei. Dir não pode fazer isso. Find funciona bem se a saída estiver no console:

find Acc*\bin\Debug\*.pdb

irá produzir

Accounting\bin\Debug\Accounting.pdb
Accounting\bin\Debug\BackendProcess.pd

É apenas o redirecionamento de arquivos que está errado.

    
por 07.06.2010 / 11:46
0

Parece que você usa uma porta deficiente do comando find(1) do UNIX e não o utilitário (% DOS) find . Como aparentemente você tem essas ferramentas em sua máquina, pode usar apenas rm(1) em vez de del nesses arquivos.

Outra opção é iterar a saída e substituir o virgule por uma barra invertida (assumindo um arquivo em lotes aqui):

setlocal enableextensions enabledelayedexpansion
for /f "delims=" %%x in ('find Acc*\bin\Debug\*.pdb') do (
    set fn=%%x
    set fn=!fn:/=\!
    >>temp.txt echo.!fn!
)
    
por 07.06.2010 / 11:46