我正在尝试创建一个批处理脚本,将目录中的文件夹移动到同一目录中的另一个文件夹中。但是,我想跳过以“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%"
)
)
我将如何继续解决这个问题?
答案 0 :(得分:1)
这个怎么样:
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-*
等错误匹配,并且不会跳过---
等文件夹。
答案 1 :(得分:0)
我会使用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%"
)