【问题标题】:How to get current folder name in lowercase as variable in cmd?如何在cmd中获取小写的当前文件夹名称作为变量?
【发布时间】:2019-10-24 01:09:13
【问题描述】:

我正在尝试以小写形式获取当前目录文件夹名称。

我知道我可以通过以下方式获取当前文件夹名称:

for %I in (.) do echo %~nxI

但我不知道如何将其转换为小写。

我需要在单行命令中使用它。

for %I in (.) do echo %~nxI

我追求的是什么:

c:\Program Files
for %I in (.) do echo %~nxI ---edited
program files

目前正在获取

c:\Program Files
for %I in (.) do echo %~nxI
Program Files

【问题讨论】:

标签: batch-file cmd


【解决方案1】:

这是一种使用dir /b /l 的方法,但与Gerhard's answer 不同的是,它不需要临时文件。

从命令行:

for %A in (.) do @for /f "eol=: delims=" %F in ('dir /b /l /ad "..\%~nxA*"^|findstr /xic:"%~nxA"') do @echo %F

在批处理脚本中:

@echo off
for %%A in (.) do for /f "eol=: delims=" %%F in (
  'dir /b /l /ad "..\%%~nxA*" ^| findstr /xic:"%%~nxA"'
) do echo %%F

【讨论】:

  • 很好的答案。谢谢。完全按照需要工作。
  • 是的,对于这种特定情况,这是一个更好的选择。我们需要恢复到临时文件,但是如果需要转换任何其他字符串并且我们使用dir /l,但是是的,你赢了:D
【解决方案2】:

使用纯批处理,带有临时文件:

单行cmd:

@for %i in (.) do echo>"%temp%\%~nxi" & @dir /b /l "%temp%\%~nxi" & @del /Q "%temp%\%~nxi"

batch-file

@echo off
for %%i in (.) do set "var=%%~nxi"
echo>"%temp%\%var%"
for /f "delims=" %%a in ('dir /b /l "%temp%\%var%"') do echo %%a & del /Q "%temp%\%var%"

或略短,没有回声:

@echo off
for %%i in (.) do (
  echo>"%temp%\%%~nxi"
  dir /b /l "%temp%\%%~nxi"
  del /Q "%temp%\%%~nxi"
)

【讨论】:

  • 效果很好,但有点担心创建然后删除文件。但是因为它在临时目录中创建文件。风险很小。
  • 是的,我很快就回答了,没有时间做更多,但@dbenham 已经在他的回答中做出了必要的改变。
  • 类似,但仅适用于文件和目录。将dir /l 用于您仍需要临时文件的其他字符串。 @for %i in (.) do for /f "tokens=*" %a in ('dir /b/l ..\^|findstr /xic:"%~nxi"') do @echo %a
【解决方案3】:

如果您在受支持的 Windows 平台上,它将具有 PowerShell。

powershell -NoLogo -NoProfile -Command "(Split-Path -Leaf -Path (Get-Location)).ToLower()"

如果您希望将结果放在 .bat 文件脚本中的变量中:

FOR /F "delims=" %%A IN ('powershell -NoLogo -NoProfile -Command "(Split-Path -Leaf -Path (Get-Location)).ToLower()"') DO (SET "LCCD=%%~A")
ECHO %LCCD%

当然,如果你可以在没有 cmd.exe 的情况下使用 PowerShell,那就是:

(Split-Path -Leaf -Path (Get-Location)).ToLower()

【讨论】:

  • 似乎给了我整个路径,而不仅仅是当前文件夹名称
  • 修改为仅生成当前目录名而不是完全限定路径。
猜你喜欢
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
  • 2014-04-22
  • 2013-03-27
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
相关资源
最近更新 更多