请高手帮我看一下这两段批处理代码
小弟想批量移动U盘中的文件及文件夹,也就是选中若干个文件及文件夹,放到该批处理文件上,然后该批处理文件自动把文件移动到D:\123文件夹中。现在有两段代码,均不太如意,请...
小弟想批量移动U盘中的文件及文件夹,也就是选中若干个文件及文件夹,放到该批处理文件上,然后该批处理文件自动把文件移动到D:\123文件夹中。
现在有两段代码,均不太如意,请高手帮忙修改。谢谢。
@echo off&setlocal enabledelayedexpansion
set "d=d:\123"
if not exist "%d%" md "%d%"
for /F "delims=" %%a in ("%*") do (set a=%%a
set a=!a:"=/!
set a=!a:/ /=/!
call:han "!a!")
for /F "delims=" %%i in (temp.h) do if exist "%%~i\" (
xcopy "%%i" /q /e /h /k /i "%d%\%%~ni\">nul
rd /s /q "%%i"
) else move "%%i" "%d%"
del /q temp.h
goto :eof
:han
set "i=%~1"&set n=0
:ye
if "!i:~%n%,1!"=="" goto :eof
if "!i:~%n%,1!"=="/" (echo.>>temp.h)else set/p=!i:~%n%,1!<nul>>temp.h
set/a n+=1&goto :ye
以上代码在移动本地硬盘上的文件及文件夹时没有什么问题,只是文件名不能包含“()”,但是如果是移动U盘上的文件及文件夹时,则一次只能移动一个。不能批量移动。
@echo off
set "var=%*"
cls
for %%i in (%var%) do (
if not exist "%%~i\" (
if not exist "%%~i" (
echo 没有 %%~i 文件(夹),请检查文件名是否含 ^& 符号
) else (move "%%~i" "d:\123\")
) else (
if /i "%%~di"=="d:" (move "%%~i" "d:\123\") else (
rem 移动文件夹
for /f "delims=" %%j in ('dir/b/s/a-d "%%~i\*.*"') do (
set "num=%%~dpj"
setlocal enabledelayedexpansion
set "num=d:\123!num:*%%~i=!\"
if not exist "!num!" md "!num!"
move "%%~i\%%~nxj" "!num!"
endlocal
)
rd /s /q "%%~i"
)
)
)
pause
这段代码只能批量移动文件,不能移动文件夹,不管是本地硬盘还是U盘都是这样。请高手帮忙修改。
我的要求就是能够拖动若干文件及文件到批处理上,然后把这些文件移动到D:\123文件夹即可。
谢谢。 展开
现在有两段代码,均不太如意,请高手帮忙修改。谢谢。
@echo off&setlocal enabledelayedexpansion
set "d=d:\123"
if not exist "%d%" md "%d%"
for /F "delims=" %%a in ("%*") do (set a=%%a
set a=!a:"=/!
set a=!a:/ /=/!
call:han "!a!")
for /F "delims=" %%i in (temp.h) do if exist "%%~i\" (
xcopy "%%i" /q /e /h /k /i "%d%\%%~ni\">nul
rd /s /q "%%i"
) else move "%%i" "%d%"
del /q temp.h
goto :eof
:han
set "i=%~1"&set n=0
:ye
if "!i:~%n%,1!"=="" goto :eof
if "!i:~%n%,1!"=="/" (echo.>>temp.h)else set/p=!i:~%n%,1!<nul>>temp.h
set/a n+=1&goto :ye
以上代码在移动本地硬盘上的文件及文件夹时没有什么问题,只是文件名不能包含“()”,但是如果是移动U盘上的文件及文件夹时,则一次只能移动一个。不能批量移动。
@echo off
set "var=%*"
cls
for %%i in (%var%) do (
if not exist "%%~i\" (
if not exist "%%~i" (
echo 没有 %%~i 文件(夹),请检查文件名是否含 ^& 符号
) else (move "%%~i" "d:\123\")
) else (
if /i "%%~di"=="d:" (move "%%~i" "d:\123\") else (
rem 移动文件夹
for /f "delims=" %%j in ('dir/b/s/a-d "%%~i\*.*"') do (
set "num=%%~dpj"
setlocal enabledelayedexpansion
set "num=d:\123!num:*%%~i=!\"
if not exist "!num!" md "!num!"
move "%%~i\%%~nxj" "!num!"
endlocal
)
rd /s /q "%%~i"
)
)
)
pause
这段代码只能批量移动文件,不能移动文件夹,不管是本地硬盘还是U盘都是这样。请高手帮忙修改。
我的要求就是能够拖动若干文件及文件到批处理上,然后把这些文件移动到D:\123文件夹即可。
谢谢。 展开
1个回答
杭州一知智能科技有限公司
2022-03-17 广告
2022-03-17 广告
电话机器人主要就是用来模拟人工通话的一组程序,一般由,CRM系统,语义识别,转换文字,话术体系,这是软的部分,再加上底层软交换和通信模块一起,合并起来就是一套完整的电话机器人系统。电话机器人可以代替真人进行电话工作的,像是电话营销、售后回访...
点击进入详情页
本回答由杭州一知智能科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询