2017-08-07 37 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!" 
)