我有一个Windows脚本,遍历所有子文件夹,查找找到的每个zip文件,并将其绝对路径放入bat文件中。
dir /b /s /-p *.zip /o:n | findstr /E .zip >"%CD%"\listFichierZip.bat
我现在想要将每一行改为MOVE函数。
我遇到了一些问题,试图在findstr函数之前添加“MOVE”字符串。我知道如何连接字符串,变量但函数返回,我不知道。
我发现有些线程在StackOverflow上提出这个问题,但不幸的是,所有这些都是关于Unix的。
答案 0 :(得分:1)
@echo off
setlocal enableextensions disabledelayedexpansion
> "moveFichierZip.bat" (
for /r %%a in ("*.zip") do echo move "%%~fa" "x:\somewhere"
)
使用递归for
命令搜索所有.zip
个文件,并搜索每个echo
move
文本,然后搜索完整路径的文件{{1} })和目标文件夹。
所有输出都被重定向到最终目标文件。
要从命令行直接运行,请使用
%%~fa
答案 1 :(得分:-1)
您最好的选择是安装busybox.exe
并将所有相关的unix文本工具放在一个可执行文件中。然后你就可以了
find . -name *.zip -print | xargs -i echo MOVE "{}" DestDir > "$CD"/listFichierZip.bat
就是这样。在执行listFichierZip.bat
...