gpt4 book ai didi

windows-7 - DOS 批处理 : Getting partial file names

转载 作者:行者123 更新时间:2023-12-01 23:54:25 27 4
gpt4 key购买 nike

我有一个正在尝试为 Windows 7 环境编写的小批处理文件。它应该遍历目录并回显文件名的最后四个字符。到目前为止我已经得到:

@ECHO OFF

SETLOCAL
for /r C:\Users\userName\Desktop\testFolder %%g in (*) do (
Set fileName = %%~ng
echo %fileName:~-4%
)

对于 testFolder 中的每个文件,所有回显的都是“~-4”一次。我不知道出了什么问题,但我不太熟悉批处理文件或 dos。任何帮助将不胜感激,谢谢。

最佳答案

Environment variable expansion occurs when the command is read ,因此当读取 for 时,您的 %fileName:~-4% 会被评估,这是 Set之前> 已执行。使用延迟扩展。

@ECHO OFF
SETLOCAL SETDELAYEDEXPANSION
for /r C:\Users\userName\Desktop\testFolder %%g in (*) do (
Set fileName=%%~ng
echo !fileName:~-4!
)

另请注意,Set 命令中的空格很重要。使用该空格,您创建了一个名为 fileName 的变量,其尾随空格。

关于windows-7 - DOS 批处理 : Getting partial file names,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7811322/

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