所以我试图模仿Apple的一些功能
我目前正在处理的一个功能是能够选择单个或多个文件,然后通过“上下文菜单”创建一个“新文件夹”(指向通过FOR循环传递文件的批处理文件)然后移动文件进入那个“新文件夹”
我遇到的问题是我使用“robocopy”研究的文件名和空格,但发现它很棘手而且很棘手
到目前为止我的代码
@echo off
set cDir=%~dp1
set newFolder="%cDir%NewFolder"
md %newFolder%
echo.
:: get each selected file and echo
for %%I in (%*) do (
echo %%I
echo.
echo %newFolder%
move "%%I" "%newFolder%"
echo.
)
pause
答案 0 :(得分:1)
您修改过的代码也应该移动文件和文件夹。为了安全起见,这是我的代码变体。请注意set
,md
和move
语句中的引用更改,但我再说一遍:您的(修改过的)引用变体也应该有效:
@echo off
set cDir=%~dp1
set "newFolder=%cDir%NewFolder"
md "%newFolder%"
echo.
:: get each selected file and echo
for %%I in (%*) do (
echo %%I
echo.
echo %newFolder%
move "%%~I" "%newFolder%\"
echo.
)
pause
虽然move /?
说移动文件并重命名文件和目录,但源和目标可以是文件夹或单个文件({{3} },在我的Win-8上验证。
证明。
==>move "D:\Path\COCL\bu bu bu" "D:\Path\content\"
1 dir(s) moved.
==>move "D:\Path\content\bu bu bu" "D:\Path\COCL\"
1 dir(s) moved.
==>
下一个资源:resource。