2016-11-04 60 views
0

我想使用批處理文件來生成Linux庫符號鏈接(是的,我試圖在Windows上執行此操作,它需要跨平臺)。我有3個文件Windows批處理文件忽略多個通配符

  • libnum1.so.1.0
  • libnum2.so.1
  • libnum3.so

我通過文件試圖循環,並僅生成的鏈接前兩個文件(第三個文件不需要生成鏈接)。我使用下面的命令來遍歷文件

for %%F in (lib*.so.*) do (
    echo %%F 
) 

然而,而不是僅僅抓住了第2個檔,它也抓住了第三個文件,這是打破我的腳本。如何讓for循環忽略以.so結尾的任何文件?

回答

1
for %%F in (lib*.so.*) do IF /i "%%~xF" NEQ ".so" (

如果文件名的擴展部分不等於.so,無論情況......

看到for/?|more或`如果/?從docco提示

0

Magoo的答案是您的問題的最佳解決方案,但這裏是一種使用FINDSTR命令使用正則表達式解決它的方法。

FOR /F "delim=" %%G IN ('dir /B lib*.so.* ^|findstr /R /C:"lib.*\.so\..*"') DO ECHO %%G 
+0

嗯,文件名'libnum3.so.something.so'發生了什麼? – Magoo

+0

@magoo,這使得它使用findstr'dir/B lib * .so。* | findstr/I/E/V更容易一些「所以」但是正如我所說的,你的解決方案是最簡單的。只是想表現出不同的方式來做到這一點。 – Squashman

+1

許多方法 - 但是'| findstr/I/E/L/V「.so」'怎麼辦?有趣的是,你有一個工作後,其他想法如何彈出。更有趣的是,批次產生的SO合作文化,而其他一些主題領域可以成爲強大的敵對... – Magoo

1

我完全忘記了無證通配符。

for %%G IN ("lib*.so.<*") do echo %%G 

你可以在Dostips上閱讀它。 http://www.dostips.com/forum/viewtopic.php?f=3&t=6207#p39390 但是,這裏是由Dave運行的測試。

   |       |  GREEDY NATURE               
file   | "??.??.??" | ">>.>>.>>" | "?a?.??.??" | ">a>.??.??" 
----------------+------------+------------+-------------+------------- 
a    | match  | no match | no match | no match 
ab    | match  | no match | no match | no match 
abc    | no match | no match | no match | no match 
a.1    | match  | no match | no match | no match 
ab.12   | match  | no match | no match | no match 
abc.123   | no match | no match | no match | no match 
a.1.x   | match  | match  | no match | no match 
ab.12.xy  | match  | match  | no match | no match 
abc.123.xyz  | no match | no match | no match | no match 
a.1.x.7   | no match | no match | no match | no match 
ab.12.xy.78  | no match | no match | no match | no match 
abc.123.xyz.789 | no match | no match | no match | no match 

                 | NON-GREEDY 
file   | "*.*.*" | "*."  | "**." | "abc.*." | "*a*" 
----------------+----------+----------+-------+----------+----------- 
abc    | match | match | match | match | match 
abc.123   | match | no match | match | match | match 
abc.123.xyz  | match | no match | match | match | match 
abc.123.xyz.789 | match | no match | match | match | match 

                 |  NON-GREEDY 
file   | "<.<.<" | "<"  | "<<" | "abc.<" | "<a<" | "<a<<" 
----------------+----------+----------+-------+----------+----------+-------- 
abc    | no match | match | match | no match | match | match 
abc.123   | no match | no match | match | match | no match | match 
abc.123.xyz  | match | no match | match | no match | no match | match 
abc.123.xyz.789 | match | no match | match | no match | no match | match 
+0

好的表格。將需要打印出來 - 我永遠不會回憶所有這些組合...... – Magoo

相關問題