String 批处理脚本上的文件移动和字符串操作
对不起,我的问题不清楚。我尝试了问题的一部分,但无法继续 文件夹结构String 批处理脚本上的文件移动和字符串操作,string,batch-file,batch-processing,String,Batch File,Batch Processing,对不起,我的问题不清楚。我尝试了问题的一部分,但无法继续 文件夹结构 Home A A1 - stdinxx.csv (xx - 2 digit number) A2 - sapvdyy.csv (yy - 2 digit number) A3 . . . AN B B1 - stdin.csv B2 - sapvd.csv B3 . . . BN 蝙蝠 mybat.bat应该在主文件夹中。A和B是
Home
A A1 - stdinxx.csv (xx - 2 digit number)
A2 - sapvdyy.csv (yy - 2 digit number)
A3
.
.
.
AN
B B1 - stdin.csv
B2 - sapvd.csv
B3
.
.
.
BN
蝙蝠
mybat.bat应该在主文件夹中。A和B是子文件夹。A和B中有子文件夹(不是固定数量,但子文件夹数量与A和B上的子文件夹数量匹配)
我做了一个for循环,得到Home子文件夹中的所有文件名(此处发布)
如何仅针对*.csv的文件夹和子文件夹执行for循环
复制时如何删除最后2位数字(以为%%%I:~-2%可以工作…不工作)
如何修剪文件路径以获得A1或A2,以便将文件从A1复制到B1等等
任何方向或想法都能救我的命。Plz
我在想
搜索文件夹“a”及其子文件夹中的*.csv文件
获取文件名
精简文件名,使2位数字消失(文件将始终包含2位数字值)
从文件所在的文件路径(A1中的1)获取文件夹名称
将修剪过的文件复制到B\B(1)\
请帮忙。求你了 @ECHO关闭
SETLOCAL ENABLEDELAYEDEXPANSION
设置“sourcedir=U:\sourcedir\t w o”
对于/f“delims=”%%a IN(
“xcopy/l/s”%sourcedir%\A\*.csv“
)是否存在“%%a”(
设置“destfilename=%%~na”
对于/f“delims=“%%s IN(“%%~dpa.”)执行ECHO f | XCOPY“%%a”“%sourcedir%\B\%%~nxs\!destfilename:~0,-2!.csv”>nul
)
后藤:EOF
您需要更改sourcedir
的设置以适应您的环境
我认为您希望将A
下的目录结构复制为B
下的相同结构,只是文件名删除了最后两个字符
你的例子似乎有些做作。最好张贴一个具有代表性的真实结构。上述代码将在B
下生成名为A*
的子目录,如果需要,可以更改这些子目录
%%x:~m,n
语法不受支持,这就是它不起作用的原因。您需要将这些值放入一个普通的环境变量中,并使用所演示的delayedexpansion
方法。如果要操纵目标子目录名称,请使用%%~nxs
中的子目录名称,跟随弹跳球,编辑您的问题并尝试格式化源文件。使用预览查看它是否可读。
For /f "delims=" %%a in ('Dir /A:-D /b /s *.csv 2^>nul') do If exist "%%a" ( copy %%a B\subfolder_based_upon_file_input\%%~ni.csv)