首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在批处理文件中设置路径

尝试在批处理文件中设置路径
EN

Stack Overflow用户
提问于 2015-12-30 20:05:37
回答 2查看 84关注 0票数 0

我试图从一个文件夹复制一些图片,并使用批处理将其移动到另一个文件夹。我在设置路径时遇到了问题,因为路径包含it.If中的空格,我从文件夹中删除了空格,它可以正常工作,但是对于空格,无法找到路径。这是密码。

代码语言:javascript
复制
@echo off 

SET odrive=%odrive:~0,2%
setlocal enabledelayedexpansion

set backupcmd=echo
set backupcmd=xcopy /s /c /d /e /h /i /r /y

set "filesw=C:\Users\%USERNAME%\Numerical Analysis\*.png"

for /f "delims=" %%i in ('dir /s /b %filesw%') do (
  if "%%~xi"==".pdf" set "dest=D"
  if "%%~xi"==".docx" set "dest=P"
  if "%%~xi"==".zip" set "dest=Z"
  if "%%~xi"==".rar" set "dest=Z"
  if "%%~di"=="C:" if "!dest!"=="Z" set "dest=!dest!3"
  %backupcmd% "%%i" "%drive%\Personal\PICS\Wedding\Barat\MOVIE!dest!\"
)

@echo off 
cls

如果你们能帮我解决这个问题会很有帮助的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-31 05:31:05

您的问题的解决方案,特别是“设置路径,因为路径中包含空格”导致“无法找到路径”,因此是“引用文件”,因此:

代码语言:javascript
复制
for /f "delims=" %%i in ('dir /s /b "%filesw%"') do (

这样,双引号之间的字符串就会按字面意思使用(尽管某些特殊字符需要转义,比如&^)!这样的批处理,即前面有一个插入符号^)。正如您所拥有的,dir命令将使用多个参数执行,因为空格是分隔符,变量filesw在执行之前将字面上替换为dir命令--与大多数命令一样,dir使用空格(逗号、制表符、分号)作为分隔符。

票数 1
EN

Stack Overflow用户

发布于 2015-12-30 20:49:43

我就是这样做的。使用FOR /R命令遍历目录树,查找所需的文件类型。但我只是猜你想做什么。

代码语言:javascript
复制
@echo off 

setlocal enabledelayedexpansion

set backupcmd=xcopy /s /c /d /e /h /i /r /y

set "filep=C:\Users\%USERNAME%\Numerical Analysis"

for /R "%filep%" %%i in (.) do (
    if "%%~xi"==".pdf" set "dest=D"
    if "%%~xi"==".docx" set "dest=P"
    if "%%~xi"==".zip" set "dest=Z"
    if "%%~xi"==".rar" set "dest=Z"
    if "%%~di"=="C:" if "!dest!"=="Z" set "dest=!dest!3"
    %backupcmd% "%%i" "%drive%\Personal\PICS\Wedding\Barat\MOVIE!dest!\"
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34536476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档