将文件从文件夹批量移动到其他文件夹问题
Posted
技术标签:
【中文标题】将文件从文件夹批量移动到其他文件夹问题【英文标题】:Batch moving files from folder to other folder issue 【发布时间】:2022-01-09 22:17:15 【问题描述】:我想使用批处理将文件(图像)从一个文件夹移动到另一个文件夹。我过去成功地做到了,但我不知道为什么它不起作用。 我不是程序员,但我有一个朋友帮我解决了这个问题。以前可以,现在不行。难道我做错了什么?需要更改代码中的某些内容吗?我使用的男女同校是这样的:
@echo off
setlocal EnableDelayedExpansion
cd C:\Users\User\Dropbox\Artwork1
set n=0
for %%f in (*.*) do (
set /A n+=1
set "file[!n!]=%%f"
)
set /A "rand=(n*%random%)/32768+1"
move "!file[%rand%]!" C:\Users\User\Dropbox\Artwork2
我显然会将路径文件更改为所需的文件,但代码有什么问题吗?几个月前它曾经工作过。
提前致谢。
【问题讨论】:
嗯,什么不工作?它怎么不工作?你能详细说明吗?很难猜出哪里出了问题。 好吧。我双击它来运行它,并且没有图像从一个文件夹移动到另一个文件夹。黑色的程序屏幕出现一瞬间,这意味着它正在运行,但没有完成任何动作 脚本在哪个驱动器上?路径C:\Users\user\Dropbox\Artwork
是通用的吗?在脚本的最后添加pause
再次运行它并告诉我你看到了什么。
C.和饲料商一样。我可以在此处粘贴用于文件夹路径的确切代码。将检查您编辑的内容并通知您
不,只需将pause
添加到脚本底部,再次运行它并告诉我它在说什么
【参考方案1】:
为了让脚本在更广泛的范围内可用,也不需要cd
:
@echo off
setlocal EnableDelayedExpansion
set "in=%userprofile%\Dropbox\Artwork1"
set "out=%userprofile%\Dropbox\Artwork2"
echo Default Input path: %in% Default Output path: %out
set /p "in=Enter Path to copy from (or Press Enter keep Default in path): "
set /p "out=Enter Destination (or Press Enter keep Default out path)
set n=0
for %%f in ("%in%\*.*") do (
set /A n+=1
set "file[!n!]=%%~ff"
)
set /A "rand=(n*%random%)/32768+1"
move "!file[%rand%]!" "%out%"
【讨论】:
以上是关于将文件从文件夹批量移动到其他文件夹问题的主要内容,如果未能解决你的问题,请参考以下文章
linux命令:批量将查找到的文件移动或者复制到其他目录并尽可能保持原文件的目录结构