我试图编写一些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}})。
任何帮助将不胜感激!我尝试使用以下链接,但我无法弄清楚如何使其适用于我的情况。
答案 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!"