Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 基于文件名子字符串创建目录并将文件移动到其中_Windows_Batch File_Windows 10 - Fatal编程技术网

Windows 基于文件名子字符串创建目录并将文件移动到其中

Windows 基于文件名子字符串创建目录并将文件移动到其中,windows,batch-file,windows-10,Windows,Batch File,Windows 10,我需要一些帮助使一个枯燥的过程自动化 我收集双语文本,我使用前缀来指定给定文本包含的语言 示例列表如下所示: IT 6875.pdf EN 6875.pdf IT sT5ezt.pdf EN sT5ezt.pdf 然后,我为某个文件对手动创建单个文件夹。输出为: 6875 ---IT 6875.pdf ---EN 6875.pdf sT5ezt ---IT sT5ezt.pdf ---EN sT5ezt.pdf 我找到了一种自动创建文件夹的方法,使用我放在目标目录中名为“organize.

我需要一些帮助使一个枯燥的过程自动化

我收集双语文本,我使用前缀来指定给定文本包含的语言

示例列表如下所示:

IT 6875.pdf
EN 6875.pdf
IT sT5ezt.pdf
EN sT5ezt.pdf
然后,我为某个文件对手动创建单个文件夹。输出为:

6875
---IT 6875.pdf
---EN 6875.pdf

sT5ezt
---IT sT5ezt.pdf
---EN sT5ezt.pdf
我找到了一种自动创建文件夹的方法,使用我放在目标目录中名为“organize.bat”的.bat文件。我可以为每个文件创建一个文件夹,并将文件移动到其文件夹中。但是,这仅在我处理的不是双语文件对,而是包含两种语言的文件时才有用,稍后我将其编辑为两个文件

此过程的语法为:

@echo off
for %%i in (*) do (
 if not "%%~ni" == "organize" (
  md "%%~ni" && move "%%~i" "%%~ni"
 )
)
我现在希望使这项任务适应上面提到的过程

  • 跳过“IT”或“EN”前缀
  • 在前缀后选择整个文件名,直到扩展名为.pdf
  • 在此选择之后创建并命名文件夹
  • 将文件对移动到文件夹中
  • 在尝试了我在这里找到的许多不同的选项之后,我决定发布这个查询,因为我无法理解这个问题

     if not "%%~ni" == "organize" (
      for /f "tokens=1*" %%b in ("%%~ni") do (
       md "%%~c" 2>nul
       move "%%~i" "%%~c"
      )
     )
    
    文件的名称部分(例如,
    IT 6875
    )使用空格作为分隔符(默认情况下)进行标记,将
    %%b
    设置为
    IT
    并将
    %%c
    设置为
    6875

    有关更多详细信息,请参见提示符中的
    以获取/?
    ,或其他许多示例


    2>nul
    确保遇到的下一个
    6875
    不会引发可见的
    目录已存在的错误消息。

    Magoo,这非常有效,非常感谢!