[英]Windows batch file commands and variables
我不確定這是否可能,但我需要的是一個在 windows 7 上運行並執行以下操作的普通 bat/cmd 文件:
步驟 1. findstr
- 它應該使用正則表達式引擎找到一個特定的字符串。 假設我們正在尋找一個包含在標簽<id>123</id>
中的數字(假設這樣的文件是唯一的,所以返回一個值)。 該命令會將123
打印到屏幕上,但我需要將它保存在一個變量中(不知道如何)。
步驟 2. 在另一個目錄上再次調用findstr
。 現在我們想找到一個文件名( /m
選項),其中包含我們在步驟 1 中保存的值(在另一組文件中,即另一個目錄中)。 再次將結果(文件名)保存在變量中。 比如說, file_123.txt
符合條件。
步驟 3. 將我們通過第二次findstr
調用 ( file_123.txt
) 獲得的文件復制到另一個位置。
整個問題圍繞着如何將 windows 命令的結果保存到變量中,以便能夠將這些值作為參數提供給后續命令。
在變量中獲取命令 output 的一般方法是
for /f %%x in ('some command') do set Var=%%x
(有各種變化,取決於上下文和確切的需要)。
至於你的步驟,我午飯后詳細說明。 有一些錯綜復雜的地方。
步驟1:
FOR /F "USEBACKQ tokens=1-20 delims=<>" %%A in (`FINDSTR "123" "path of file to search in"`) DO (
SET var=%%B
)
ECHO %var%
了解 delims 會根據 output 各部分的“分隔”而改變(無論是空格、特殊字符等)
第 2 步和第 3 步:
FOR /F "USEBACKQ tokens=*" %%A IN (`DIR "Path" /A ^| FIND /I "%var%"`) DO (
COPY /Y "%%A" "C:\New\Path\%%~nxA"
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.