【发布时间】:2013-11-25 21:08:22
【问题描述】:
我想在 Windows 7 中实现一个批处理脚本,该脚本遍历文件夹中的所有文件并剪切文件夹前缀,例如文件夹 = "C:\A\B\" 和文件 = "C:\A\B\C\D.E" 应该输出 "C\D.E"。我当前的代码如下所示:
setlocal ENABLEDELAYEDEXPANSION
SET DIRECTORY=C:\DEV\SVN\QA\
for /R %DIRECTORY% %%f in (*.*) do (
REM GET RELATIVE PATH
echo File=%%f
echo Path=%TARGET_PATH_FOR_SOURCE%
set result=%f:!TARGET_PATH_FOR_SOURCE!=%
echo Result=!result!
)
我得到以下结果:
File=C:\DEV\SVN\QA\1.0\A\B\C.txt
Path=C:\DEV\SVN\QA\1.0
Result=C:\DEV\SVN\QA\1.0= <<< Expected result: "A\B\C.txt"
我找到了这个here 并在循环中尝试了这个但没有成功。你能帮帮我吗?
谢谢!
【问题讨论】:
-
选择了错误的语言。德语:Ist dir aufgefallen, dass dies ein englisch sprachiges Forum ist?
-
Ich habe hier schon einige Fragen gefunden,死在 deutsch formuliert wurden。
-
这个问题是题外话,因为它不是英文的
-
我已经翻译好了!我看到一些德语问题。所以我认为用德语写是可以的,对不起!这是我的第一篇文章。
-
您正在尝试使用
FOR变量进行SET扩展。那是行不通的。使用 Set File=%%f 和 !File:!TARGET_PATH_FOR_SOURCE!=!而是。
标签: shell batch-file command-line windows-7