我試圖在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