2017-08-07 49 views
0

我相信它應該是一個簡單的方法來做到這一點,但我不知道如何。CMD/BATCH來自當前位置的文件夾

現狀: 客戶發送zip文件到我們的SFTP文件夾,通過使用一些簡單的批處理文件從SFTP複製zip文件,解壓縮,並用它必須完成剩下的事矣。

我需要什麼:

裏面的zip文件有一個文件夾(主要問題,它可以被隨機命名的)。我需要的是一個BATCH文件,它將複製當前(作業)位置中任何現有文件夾中的所有文件。

編輯: 目前的方法是一個非常糟糕的(但它紮實的工作),我只是簡單地改變在批處理文件並運行所有漂亮和流暢的文件夾的名稱。方法工作正常,但我想完全自動化。

+5

你有什麼試過,你試過的怎麼樣都失敗了?理想情況下,您應該提供您嘗試過的[最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve),幷包含有關失敗的具體信息,包含錯誤消息和/或錯誤的輸出。 SO不是代碼寫入服務;最好的問題是提供有用信息的問題,以便那些回答問題的人可以指導你設計自己的正確答案。參見[如何提出一個好問題](https://stackoverflow.com/help/how-to-ask)。 –

+1

你可能會發現一些關於[SS64]中的'FOR'語句的信息(https://ss64.com/nt/for.html)是有用的...... –

+0

@JeffZeitlin我有很多方法從文件夾中獲取文件,但是無處不在需要指定文件夾名稱(通過使用變量或任何其他方法)但需要指定的主要問題。我正在尋找將從當前作業文件夾中的文件夾中提取所有文件的方法。 – Denis

回答

0

您可以使用僅獲取目錄的DIR /A:D迭代解壓縮歸檔目錄中的目錄。如果發現它將處理多個子目錄。

SETLOCAL ENABLEDELAYEDEXPANSION 
SET "EXTRACTED_DIR=C:\path\to\extracted\archive" 

FOR /F "usebackq tokens=*" %%d IN (`DIR /A:D /B "%EXTRACTED_DIR%"`) DO (
    SET "THE_DIR=%%~d" 
    ECHO Do something with mystery directory "%EXTRACTED_DIR%\!THE_DIR!" 
)