使用路径中的“变量文件夹名称”将文件从一个路径复制到另一个路径 - 批处理文件

时间:2014-01-09 12:59:48

标签: variables batch-file path copy directory

我在将文件从一个路径复制到另一个路径时出现问题,路径中带有“变量文件夹名称”

如果文件夹名称中没有空格,以下代码可以正常工作。(听说Folder1是变量文件夹名称)

CODE:

@echo off&setlocal enabledelayedexpansion

SET inpu="Folder1"
::SET /p fil=enter file name: 


for /f "delims=" %%x in ('dir "C:\Users\kumark3\Desktop\"%inpu% /ad /b') do (
set /a userslen+=1
set "usersarray!userslen!=C:\Users\kumark3\Desktop\%inpu%\%%x"
)


for /l %%x in (1,1,%userslen%) do (

xcopy "!usersarray%%x!\geth\gr.txt" "C:\Users\kumark3\Desktop\Folder2" /c /h /r /y /i

)

但是如果文件夹名称有空格,则代码不起作用 例如,如果代码中的第二行是

SET inpu =“Folder 1”

请给我一个解决这个问题的方法

1 个答案:

答案 0 :(得分:0)

差不多完成了,改变

中的引号位置
set "inpu=Folder 1" 

'dir "C:\Users\kumark3\Desktop\%inpu%" /ad /b'

已编辑 - 回答评论

@echo off
    setlocal enableextensions enabledelayedexpansion

    set "inpu=Folder 1"
    set "where=C:\Users\kumark3\Desktop"

    for /f "tokens=*" %%x in ('dir /ad /b "%where%\%inpu%" /ad /b') do (
        set /a "userslen+=1"
        set "usersarray!userslen!=%where%\%inpu%\%%x"
    )

    set users

    for /l %%x in (1,1,%userslen%) do (
        xcopy /c /h /r /y /i "!usersarray%%x!\geth\gr.txt" "%where%\Folder2" 
    )