Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理-基于最后2个字符复制文件夹_Batch File - Fatal编程技术网

Batch file 批处理-基于最后2个字符复制文件夹

Batch file 批处理-基于最后2个字符复制文件夹,batch-file,Batch File,我在网上搜索过,找不到解决办法,或者我无法使他们适应我的问题。 我希望batch仅当任何子文件夹的最后两个字符为14时才从文件夹TEMP(几千个子文件夹)复制子文件夹。对于目录名,您需要一些字符串操作 for /d %%f in ("%temp%\*14") do ( md "c:\somewhere\%%~nxf" > nul 2>nul xcopy "%%~ff" "c:\somewhere\%%~nxf" /e /y ) @echo off setlocal

我在网上搜索过,找不到解决办法,或者我无法使他们适应我的问题。 我希望batch仅当任何子文件夹的最后两个字符为14时才从文件夹TEMP(几千个子文件夹)复制子文件夹。

对于目录名,您需要一些字符串操作

for /d %%f in ("%temp%\*14") do (
    md "c:\somewhere\%%~nxf" > nul 2>nul 
    xcopy "%%~ff" "c:\somewhere\%%~nxf" /e /y
)
@echo off
setlocal EnableDelayedExpansion

for /d %%d in (c:\temp\*.*) do (
    set path=%%d

    if !path:~-2! equ 14 (
        echo directory is: %%d
        rem copy %%d .... etc
    )
)

它起作用了。非常感谢你。是否可以添加行以仅复制每个文件夹中名为MATIKGL.dbf和PROMGL.dbf的文件,这些文件夹将被复制到新创建的文件夹中(不是所有文件)。TEMP中的每个子文件夹都有这两个文件(以及其他文件)。@JovicaBozic,在for循环中,将xcopy行替换为
xcopy“%%~ff\matikgl.dbf”c:\somewhere\%%~nxf”/e/y
,并在第二个文件的行中添加一个等效的行。