gpt4 book ai didi

batch-file - 处理批处理文件中带空格的尾部反斜杠和目录名称

转载 作者:行者123 更新时间:2023-12-03 15:54:08 29 4
gpt4 key购买 nike

这是这个问题的变体: Remove Trailing Slash From Batch File Input

但它略有不同,所以我不认为这是一个骗局。

我在使用其中有空格的目录(运行 WinXP)时遇到问题。

:START
@echo What folder do you want to process? (Provide a path without a closing backslash)
set /p datapath=

::Is string empty?
IF X%datapath% == X GOTO:START

::Does string have a trailing slash? if so remove it
IF %datapath:~-1%==\ SET datapath=%datapath:~0,-1%

echo %datapath%

它处理:

c:\

正确地(将其剥离到 c:)

但是如果你输入:

c:\test space

错误是“此时未预料到空间。”

如果您尝试输入:

"c:\test space"

你得到同样的错误。

我认为它会在这一行中战略性地放置一两个 ":

IF %datapath:~-1%==\ SET datapath=%datapath:~0,-1%

但我没有任何运气。

有什么想法吗?

最佳答案

您可以通过延迟扩展来解决它,因为延迟扩展与百分比扩展的工作方式不同。

:START
setlocal EnableDelayedExpansion
@echo What folder do you want to process? (Provide a path without a closing backslash)
set /p datapath=

::Is string empty?
IF X!datapath! == X GOTO:START

::Does string have a trailing slash? if so remove it
IF !datapath:~-1!==\ SET "datapath=!datapath:~0,-1!"

echo !datapath!

它的扩展晚于 percent 扩展,并且在延迟扩展之后不再进行解析,因此即使是空格或特殊字符也有任何影响。

关于batch-file - 处理批处理文件中带空格的尾部反斜杠和目录名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5197765/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com