将S3中的文件移动到具有相同名称的新文件夹中

时间:2020-01-15 12:05:07

标签: batch-file amazon-s3 boto3 aws-cli boto

我有一个AWS S3存储桶,其中包含数百个文件。我想为每个文件创建一个新文件夹,并且我希望这些文件夹具有与文件相同的名称。

基本上是这样的:

bucket_name/
├── filename1.json
├── filename2.json
├── filename3.json
└── ...

对此:

bucket_name/
├── filename1/ 
|     └── filename1.json
├── filename2/ 
|     └── filename2.json
├── filename3/ 
|     └── filename3.json
└── ...

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用其中+ mkdir的for循环,使用文件名创建文件夹:

Rem :: in command line ::
for /F %i in ('%__APPDIR__%where ".:*.json" ')do mkdir .\"%~ni" && move "%~i” .\"%~ni"

Rem :: in cmd/bat file ::
@echo off & for /F %%i in ('%__APPDIR__%where ".:*.json" ')do mkdir .\"%%~ni" && move "%%~i” .\"%%~ni"

答案 1 :(得分:0)

添加了标签后,下面是一种可能的方法:

@Set "SourceDir=..\Desktop\New folder"
@For /F "EOL=|Delims=" %%I In ('""%__APPDIR__%where.exe" "$SourceDir:*.json" 2>NUL"'
)Do @"%__AppDir__%Robocopy.exe" "%%~dpI." "%%~dpI%%~nI" "%%~nxI" /Mov>NUL

只需将1行中的源目录路径替换为保存.json文件的路径,(我使用了相对路径,根据需要您可以相对或完整)< / em>。