我正在尝试创建一个批处理脚本,将一个目录中的文件夹移动到同一目录中的另一个文件夹中。但是,我想跳过以"FILES-“开头的文件夹(文件夹名的其余部分由随机字符组成)。
这就是我到目前为止所知道的:
echo #### moving folders into newly created folder...
for /D %%D in ("C:\Users\reite\Downloads\*.*") do (
if /I not "%%~nxD"=="FILES" (
move "%%~D" "C:\Users\reite\Downloads\%datestamp%"
)
)
我该如何继续解决这个问题呢?
发布于 2018-06-10 08:38:12
这样如何:
echo #### moving folders into newly created folder...
for /D %%D in ("C:\Users\reite\Downloads\*.*") do (
for /F "delims=- eol=-" %%N in ("_%%~nxD") do (
if /I not "%%N"=="FILES" (
move "%%~D" "C:\Users\reite\Downloads\%datestamp%"
)
)
)
for /F
命令使用-
字符拆分文件夹名称。前导_
旨在避免像--FILES-*
这样的错误匹配,并且不跳过像---
这样的文件夹。
发布于 2018-06-10 18:21:57
我会使用findstr/b而不是for:
echo #### moving folders into newly created folder...
for /D %%D in ("%userprofile%\Downloads\*") do (
echo/%%~nxD|findstr /I /B "FILES-">nul||move "%%~D" "%userprofile%\Downloads\%datestamp%"
)
https://stackoverflow.com/questions/50779579
复制相似问题