如何使用命令提示符列出目录中的文件名但排除前3个字符

时间:2017-04-11 17:38:03

标签: vba batch-file command-line command-prompt

我试图编写一些vba代码,将一行代码发送到命令提示符并执行它。我有那个部分,但我需要帮助让实际的代码工作。

我想列出特定文件夹中.doc文件扩展名的所有文件,但我想排除打印到输出文本文件的文件名的前三个字符。 (注意:我正在使用vba,因为这是我想要进入单个vba宏的几个不同命令之一,我不能使用批处理文件b / c它们在我的系统上被阻止所以我&# 39; d喜欢直接使用命令提示符工作)

以下代码有效,并为我提供了没有文件扩展名的文件名(即。ABC201704.doc将返回ABC201704

*%comspec% /c for %i in (C:\Test\ABC*.doc) do @echo %~ni >> C:\Test\Output.txt*

但是,我不知道如何修改它,以便它不包含前3个字符(即我希望它返回201704而不是{{ 1}})。

任何帮助将不胜感激!我尝试使用以下链接,但我无法弄清楚如何使其适用于我的情况。

1 个答案:

答案 0 :(得分:1)

未经测试:

@echo off
setlocal enableDelayedExpansion

for %%a in ("C:\Test\ABC*.doc") do (
   set docname=%%~nxa
   echo !docname:~3!
) 

在命令提示符中:

cmd /v:on  /c "for %a in  ("C:\Test\ABC*.doc") do set  docname=%~nxa & echo !docname:~3!"