【发布时间】:2020-06-29 10:11:13
【问题描述】:
我绝对不是开发人员,我需要您的帮助。我在这个网站上环顾四周,发现了一些我认为可以满足我需求的例子,但它实际上并不起作用。 First example 或另一个Second Exapmle 我创建了这个测试批处理文件:
@ECHO OFF
SETLOCAL
SET "sourcedir=C:\Test_Directory"
PUSHD %sourcedir%
FOR /f "tokens=1* delims=-" %%a IN (
'dir /b /a-d "*.pb*"'
) DO (
ECHO MD %%a
ECHO MOVE "%%a-%%b" .\%%a\
)
POPD
GOTO :EOF
我为测试目的创建了以下文件:
- 777 在这个我没有delimiter.pb4
- 现在任何简单且不难解决的问题 - 我们去吧.pb4
- 现在任何简单且不难解决的问题 - 我们去吧.pb5
- 可能也是 (The) - Something-like-this.pb4
- 甚至更糟 - 怎么办.pb
- 示例 - Easy.pb
- 假的,文件 - 又一个.pb4
- 这里,那里 - 我不知道该怎么办.pb3
- 这里,那里-whatever.pb3
- 第一个 1 - 这里的其他内容 (2).pb4
- 这第一个 1 - 这里的其他东西.pb4
- 这一招也一样 777 因为没有 delimiter.pb3
我有一个分隔符“-”。我需要创建一个文件夹,该文件夹的名称与 3 个字符分隔符之前的名称相同,并将所有以与分隔符之前的名称相同的名称开头的文件移动到该文件夹。
现在第一个问题是'delims' 只接受一个字符。我有3个怎么办?
第二个问题是在某些文件中这种模式“ - ”不存在。然后必须将文件移动到名为“0-TBC”的目录中。
第三个问题是当我在文件名中只有一个“-”字符时,它与我正在寻找的模式不匹配。在这种情况下,我应该找到该模式,如果它不在文件名中,那么该文件也应该移动到“0-TBC”文件夹中。
第四个问题是,当我运行上面的批处理文件时,显示的结果很好(除了它没有解决上面的两个问题)。然而,当我删除“MD”命令前面的“ECHO”时,它会将空格作为分隔符而不是“-”字符,因此它绝对不会做预期的事情。
抱歉,拖了这么久。非常感谢您的热心帮助。
【问题讨论】:
标签: windows batch-file directory-structure