我试图在Visual Studio项目的建设前阶段做一些事情。具体来说,我试图在项目中的所有* .resx文件上执行一些命令。这是我所拥有的,但是当文件/目录路径中有一个空格时它不起作用。我如何绕过这些空间?搜索文件的批处理脚本和处理这些文件?
for /f %%a in ('dir /B /S *.resx') do echo "%%a"
我试图在Visual Studio项目的建设前阶段做一些事情。具体来说,我试图在项目中的所有* .resx文件上执行一些命令。这是我所拥有的,但是当文件/目录路径中有一个空格时它不起作用。我如何绕过这些空间?搜索文件的批处理脚本和处理这些文件?
for /f %%a in ('dir /B /S *.resx') do echo "%%a"
可以使用findutils的Windows - 它包括“发现”和“xargs的”
您还可以安装cygwin得到一个全面的类Unix式的外壳,其自带的可信赖岁“查找”命令,以及一堆其他工具。例如,
find . -name "*.resx" | xargs grep MyProjectName
而你让你的整个构建依赖于cygwin的存在。不大好。更Let论这个任务非常不需要的事实。 – Joey 2009-09-19 07:03:34
棒与外壳
for /f "delims=|" %%a in ('dir /B /S *.resx') do echo "%%a"
的对于文本解析器只需添加一个delims选项(一个DELIM字符,这显然是不可能存在的),等瞧!
在此由于缺少delims选项,/ F将做什么是应该的,即通过在每一个空间或标签序列分割解析它的输入。
您正在运行到疏忽造成使用默认的空间分隔符的。您可以修复通过重新像这样的delims:
for /f "delims=" %%a in ('dir /B /S *.resx') do echo "%%a"
生成所有相关文件供以后处理一个简单的文件列表
@echo create a results file…
if exist results.txt (del results.txt)
echo. >NUL 2>results.txt
@echo minimal recursive subdirectory search for filespec...
dir /s /a /b "*.resx" >>results.txt
的[在一个目录使用for循环迭代中的所有文件(可能的复制https://stackoverflow.com/问题/ 138497 /迭代,所有有关文件正在使用-A-目录-A-for循环) – 2018-03-01 02:43:28