簡體   English   中英

Windows 批處理文件命令和變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM