Windows 7 指令
我可以透過以下命令檢索文件列表dir /b | find "TENDER_NUM 2"
。我正在嘗試將 find 返回的所有文件複製到另一個資料夾中。
我試過了:
for /r %x in (dir /b | findstr "TENDER_NUM 2") do copy "%x" dir_to_copy\
這沒有用。
編輯1:錯誤訊息說unexpected |
,我認為它來自dir/b | Findstr
編輯2:是的,dir_to_copy\存在
答案1
錯誤訊息顯示意外|
for /r %x in (dir /b | findstr "TENDER_NUM 2") do copy "%x" dir_to_copy\
上述命令中有多個錯誤。
您需要
|
使用以下方法轉義特殊字元^
:^|
您需要
dir /b | findstr "TENDER_NUM 2"
用單引號引起來'
:'dir /b ^| findstr "TENDER_NUM 2"'
您需要使用
for /f
而不是for /r
:對於 /f-根據另一個命令的結果循環命令。
對於/r- 循環檔案(遞歸子資料夾)。
從 shell 使用以下命令cmd
:
for /f %x in ('dir /b ^| findstr "TENDER_NUM 2"') do copy "%x" dir_to_copy\
在批次檔中(替換%
為%%
):
for /f %%x in ('dir /b ^| findstr "TENDER_NUM 2"') do copy "%%x" dir_to_copy\
進一步閱讀
- Windows CMD 命令列的 AZ 索引- 與 Windows cmd 行相關的所有內容的絕佳參考。
- 對於 /f- 根據另一個指令的結果循環指令。
- 對於/r- 循環檔案(遞歸子資料夾)。
- 句法- 轉義字元、分隔符號和引號。