【问题标题】:How do I have a windows batch file look through hundreds of folders and move files around based on a list.txt?如何让 Windows 批处理文件查看数百个文件夹并根据 list.txt 移动文件?
【发布时间】:2012-10-02 18:39:21
【问题描述】:

我似乎无法让它工作。我需要一个批处理文件来遍历一堆包含文件的文件夹,并将它们移动到列表.txt 中指定的文件夹中。

基本上我希望它执行以下操作: 示例列表.txt

folder1 file1
folder2 file1

并解析它以便我可以:

copy C:\folder1\file1*.txt to destination folder
copy C:\folder2\file1*.txt to destination folder
etc

这是我目前所拥有的:

主程序:

echo off
set lines=0

for /f "tokens=1 delims=" %%a in (%CD%\list.txt) do (
                echo %%a
                echo 1 %SN% from EEN %EEN%               
                call :first %%a
                echo 2 %SN% from EEN %EEN%               
                call :second %%a
                echo 3 %SN% from EEN %EEN%               
                set /a lines+=1
)

echo %lines%
pause
goto :eof

:first
set EEN=%1
goto :eof

:second
set SN=%2
goto :eof

pause

list.txt(第一列为文件夹名,第二列为文件名):

DM5V37H WMC1F0077774
DM5V37H WMC1F0077711
DM5V37H WMC1F0086480
DM5V37H WMC1F0086372
DM5V37H WMC1F0077655
DM5V37H WMC1F0077770

我做错了什么?

【问题讨论】:

  • 您是否考虑过为此使用 powershell?
  • 我对 PowerShell 不是很熟悉(仅用于 Exchange 和 MS 服务器)。这是因为批次限制而无法完成的事情吗?
  • 我相信你最终会弄明白的。我只是认为在 PowerShell 中编写和调试会简单得多。您可能可以使用上述行的四分之一。听起来您在 Exchange 等方面的经验已经有了一个良好的开端。在线上有很多很好的参考信息和教程,包括关于 stackoverflow。试一试!
  • 好的,会试试的!谢谢....因为我的 PowerShell 体验是在 Exchange Powershell 窗口中...我什至如何执行它?写什么最好?我之前刚刚使用过记事本(或记事本++)。任何建议表示赞赏。
  • 确保您已安装 powershell。如果您使用的是 Win 7,那么它是随系统安装的。如果您使用的是 XP,则需要从 Microsoft 下载并安装。您可以在任何文本编辑器中创建脚本,就像批处理文件一样。唯一的区别是您使用“.ps1”扩展名保存它。接下来,启动 powershell。在我的系统上,它位于Start=>Programs=>Accessories=>WindowsPowershell。使用导航命令导航到您的脚本,然后运行它,就像处理批处理文件一样。也可以直接在命令行输入命令。

标签: file sorting batch-file copy move


【解决方案1】:

我不确定您对 SN 和 EEN 的引用,但我刚刚对此进行了测试,它似乎有效。第一部分演示如何访问从文件中读取的行中的每个项目,然后执行实际的移动操作。我相信您可以根据需要对其进行修改。

@echo off
set lines=0

for /f "tokens=1,2 delims= " %%a in (list.txt) do echo %%a %%b&set /a lines+=1
echo Number of lines: %lines%

:: Perform move operation.  
for /f "tokens=1,2 delims= " %%a in (list.txt) do (
if not exist %%a (md %%a)
move "%%b" "%%a\%%b"
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-07
    • 2013-08-03
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多