为什么“查找”会打印正斜杠?

为什么“查找”会打印正斜杠?

我有以下命令:

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

查看 temp.txt,我发现:

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

注意正斜杠。为什么它会输出这样的文件名?我该如何让它输出反斜杠,以便我可以对这些文件使用 del?

答案1

find 在文件中查找搜索字符串。也许您正在寻找类似的东西dir *.pdb /S /B > temp.txt

答案2

我认为您在 DOS 上使用了一些 find(1) 端口。如果您有 find,我认为您可能也有 sed...然后...

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

这应该可以完成工作。

否则,请按照@Johannes Rössel 所说的操作。

答案3

我想列出带有我提到的通配符的文件。 Dir 无法做到这一点。 如果输出在控制台中,则 Find 可以正常工作:

find Acc*\bin\Debug\*.pdb

将输出

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

只是文件重定向出了问题。

答案4

看起来您使用的是 UNIXfind(1)命令的一个较差的移植版本,而不是(以前的 DOS)find实用程序。由于您的机器上显然有这些工具,因此您可以直接使用rm(1)这些del文件。

另一种选择是迭代输出并用反斜杠替换斜线(假设这里是批处理文件):

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

相关内容