【问题标题】:copy file from one path to another with a 'variable folder name' in the path - batch file在路径中使用“可变文件夹名称”将文件从一个路径复制到另一个路径 - 批处理文件
【发布时间】:2014-01-09 12:59:47
【问题描述】:

我在将文件从一个路径复制到另一个路径时遇到问题,路径中包含“可变文件夹名称”

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

代码:

@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="文件夹 1"

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

【问题讨论】:

    标签: variables batch-file path copy directory


    【解决方案1】:

    几乎完成,更改引号位置

    set "inpu=Folder 1" 
    

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

    已编辑 - 回答 cmets

    @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" 
        )
    

    【讨论】:

    • 仍然没有得到答案 Invalid number of parameters is the error am getting
    • @user3173444,请参阅更新的答案。您从哪里获得无效的参数数量?
    猜你喜欢
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    相关资源
    最近更新 更多