所以我有下面的批处理文件。
@ECHO OFF
FOR %%I IN (.) DO SET FolderName=%%~nxI
MKDIR "C:\%FolderName%"
for %%i in (%*) do (
move "%%~i" "C:\%FolderName%"
)
因此,当我将多个文件拖放到批处理文件中时,它将使用包含我拖放文件的文件夹的名称,并在 C:\ 处创建一个具有相同名称的新文件夹,然后将文件移动到C:\ 的新文件夹
示例:包含我要移动的文件的文件夹名称为 Shop。然后文件夹 Shop 位于
...\地面\钟\塔\商店
使用批处理文件将创建一个新文件夹名称 Shop at C:\
例子
C:\商店
当我一次拖放大约 100 个文件时,批处理文件有效。问题是,当我一次拖放 300 个文件时,它返回“文件名或扩展名太长”的错误。我可以手动移动文件,所以我知道这不是文件名太长造成的。
然后我制作了一个新的批处理文件,认为这可能是move
命令或我的 for 循环的问题。所以我在下面写了批处理文件。
@echo off
FOR %%I IN (.) DO SET FolderName=%%~nxI
MKDIR "C:\%FolderName%"
MOVE "%cd%\*.*" "C:\%FolderName%"
现在上面的第二个批处理文件与第一个批处理文件几乎相同。就像第二个批处理文件一样,我只需要从我要移动的文件夹中拖放一个文件,它会将第一个文件夹中的所有文件移动到 C:\ 的新文件夹中,即使第一个文件夹有1000 个文件。
我的问题是,如果我一次拖放太多文件,为什么第一个批处理文件会失败。使用第二个批处理文件工作,所以不能是因为move
命令还是它?由于我将所有文件从一个文件夹移动到另一个文件夹,第二个批处理文件适合我的需要,并且想知道第二个批处理文件是否会有任何问题或更好的方法。