我有以下命令:
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!
)