我正在尝试通过批处理实现一些文件控制。
基本思想是提供一个文本文件,其中包含文件和文件夹路径的列表。
然后,我需要做的就是将这些名称文件移动到引用相同文件夹结构的另一个位置。文件夹路径也有所不同,其中一些可以是2个深度,其他则可以是4个。
批处理的原因是一次可以处理数百个文件,因此使手动处理既费时又费力。
文本文件输入的一个示例是:
copier\spc240\parts.cat\M095_M096_CHN_V1.05.pdf
copier\spc240\parts.cat\M095_M096_NA_V1.06.pdf
copier\spc240\parts.cat\M099_M100_NA_V1.10.pdf
copier\spc240\parts.cat\M100_CHN_V1.10.pdf
options\df3090\D779_21_V1.01.pdf
options\pb3190\D747_27_V1.00.pdf
到目前为止,我已经设法做到以下几点:
@echo off
set "file=deletes.txt"
set /A i=0
for /F "usebackq delims=*" %%a in ("%file%") do (
set /A i+=1
call set array[%%i%%]=%%a
call set n=%%i%%
)
for /L %%i in (1,1,%n%) do (
echo|set /p="move %%array[%%i]%% moved\%%array[%%i]%%">>Test.txt
echo.>>Test.txt
)
echo pause>>Test.txt
rename Test.txt RunMe2Move.bat
pause
目前,这对我来说是制作一个可以单独运行的批处理文件,但这是我偶然发现的地方。由于目标文件夹不存在,因此出现此错误,并且我对批处理数组不熟悉,无法拆分文本行,因此我无法对缺少的文件夹使用mkdir或修剪文件名。
本质上,我试图为文本文件中的每一行获取以下经过处理或输出的代码行(以copier \ spc240 \ parts.cat \ M095_M096_CHN_V1.05.pdf为例)。
mkdir moved\copier\spc240\parts.cat\
move copier\spc240\parts.cat\M095_M096_CHN_V1.05.pdf moved\copier\spc240\parts.cat\
最终,如果可能的话,我试图将所有这些都保存在一个文件中,输出就在那里,以便我检查所有内容。
有人可以帮忙吗?
for /f "delims=" %%a in (%file%) do (
SET "fpath=%%~a"
SETLOCAL enableDelayedExpansion
SET "fpath=!fpath:%%~nxa=!"
md "moved\!fpath!"
move "%%~a" "moved\!fpath!"
ENDLOCAL
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句