1

У меня есть следующая команда:

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

Глядя в temp.txt, у меня есть:

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

Обратите внимание на косые черты. Почему он выводит имена файлов, как это? И как мне получить его для вывода обратной косой черты, чтобы я мог использовать del для этих файлов?

4 ответа4

2

find ищет строку поиска в файлах. Возможно, вы ищете что-то вроде dir *.pdb /S /B > temp.txt ?

1

Я думаю, что вы использовали какой-то порт для find(1) в DOS. если вы нашли, я думаю, что вы, возможно, также успокоились .. а потом ...

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

это должно сделать работу.

в противном случае следуйте тому, что сказал @Johannes Rössel.

0

Я ищу список файлов с подстановочными знаками, которые я упомянул. Дир не может этого сделать. Find работает нормально, если вывод находится в консоли:

find Acc*\bin\Debug\*.pdb

будет выводить

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

Это просто перенаправление файлов, которое идет не так.

0

Похоже, вы используете плохой порт команды UNIX find(1) а не утилиту (ранее DOS) find . Поскольку у вас, очевидно, есть эти инструменты на вашем компьютере, вы можете просто использовать rm(1) вместо del для этих файлов.

Другой вариант - перебрать выходные данные и заменить virgule на обратную косую черту (при условии, что здесь указан пакетный файл):

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .