首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在批处理脚本中使用set函数来接受空格

如何在批处理脚本中使用set函数来接受空格
EN

Stack Overflow用户
提问于 2016-02-03 20:31:40
回答 1查看 56关注 0票数 0

我正在尝试学习更多关于批处理脚本的知识,并且我在谷歌上搜索了这个问题,而没有真正理解我所读的内容。

所以我有下面的批处理脚本来创建多个文件夹。批处理脚本在文件夹名中创建具有当前日期的文件夹。它还提示用户输入文件夹名。唯一不能正确处理的是如何在文件夹名中有空格。如果我调用文件夹(例如我的文档),什么都不会发生(批处理将无法工作)。

那么,如何使这个批处理能够接受文件名中的空格呢?

代码语言:javascript
复制
:: DATE SETTINGS
        @ECHO off
        SETLOCAL ENABLEEXTENSIONS
        if "%date%A" LSS "A" (set toks=1-3) else (set toks=2-4)
        for /f "tokens=2-4 delims=(-)" %%a in ('echo:^|date') do (
          for /f "tokens=%toks% delims=.-/ " %%i in ('date/t') do (
            set '%%a'=%%i
            set '%%b'=%%j
            set '%%c'=%%k))
        if %'yy'% LSS 100 set 'yy'=20%'yy'%
        set Today=%'yy'%-%'mm'%-%'dd'% 
    ENDLOCAL & SET v_year=%'yy'%& SET v_month=%'mm'%& SET v_day=%'dd'%
:: ECHO Today is Year: [%V_Year%] Month: [%V_Month%] Day: [%V_Day%]
::------------------------------------------------------------------------------------------------
::AskForFolderName
set /p NewFolder=Enter folder name here:
If [%NewFolder%]==[] Goto AskForFolderName
If Exist "%NewFolder%" (
   Echo Folder already exists
   Echo.
   Goto AskForFolderName
)
::------------------------------------------------------------------------------------------------
MD "%V_Year%.%V_Month%.%V_Day% - %NewFolder%\IMAGES\RAW IMAGES"
MD "%V_Year%.%V_Month%.%V_Day% - %NewFolder%\IMAGES\EXPORTS\JPG"
MD "%V_Year%.%V_Month%.%V_Day% - %NewFolder%\IMAGES\EXPORTS\PNG"
MD "%V_Year%.%V_Month%.%V_Day% - %NewFolder%\IMAGES\EXPORTS\PSD"
MD "%V_Year%.%V_Month%.%V_Day% - %NewFolder%\VIDEO\RAW VIDEO"
MD "%V_Year%.%V_Month%.%V_Day% - %NewFolder%\VIDEO\EDITS"
MD "%V_Year%.%V_Month%.%V_Day% - %NewFolder%\VIDEO\EXPORTS"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-03 21:37:58

代码语言:javascript
复制
If [%NewFolder%]==[] Goto AskForFolderName

让我们拆解这一行,假设%newfolder%My Documents

代码语言:javascript
复制
If [My Documents]==[] Goto AskForFolderName

if语法是if argument1 comparison argument2 command

argument1[My,比较是Documents],等等。什么!?语法错误!

处理空格的批处理方式是将字符串封装在qoutes中:

代码语言:javascript
复制
If "%NewFolder%"=="" Goto AskForFolderName

argument1"My Documents",比较是==argument2"",命令是Goto ... -语法ok.

(有趣的细节:在下一行(if exist ...)中,您正确地使用了引用的字符串)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35187112

复制
相关文章

相似问题

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