我正在尝试创建一个 BAT 自动将输入文件夹中的 ZIP 分类到相应的目标文件夹中。
所有 ZIP 都以序列号 001 File.zip、002 File.zip、003 File.zip 等开头。
目标文件夹按照相同的方案命名:001、002、003、...、999。
所以如果一个 ZIP 进入输入文件夹,它应该自动分配到具有相同编号的相应目标文件夹。
但是由于目标文件夹最多 999 我不想事先写所有路径...
到目前为止我的代码是这样的:
SET input=C:\Daten\Input
SET target=C:\Daten\Target
for /r %input% %%a in (*.zip) do (
Set FILE=%%~nxa
Set FILEWITHOUTEXT=%%~na
Set SPLITABLE_NAME=!FILEWITHOUTEXT:_= !
for %%t in (!SPLITABLE_NAME!) do set FIRSTTOKEN=%%t
)
copy /Y %%a %target%\!FIRSTTOKEN!\!FILE!
不幸的是,整件事根本不起作用。
答案 0 :(得分:0)
根据 Stephan 的评论以及一些额外的代码清理和最佳实践用法,您的代码应该如下所示。
listen 8082; listen [::]:8082;
答案 1 :(得分:-1)
我看到您已经选择并回答了。如果您想推进现代脚本语言,您可以考虑使用 PowerShell。如果您使用的是受支持的 Windows 平台,则可以使用 PowerShell。
一旦您确信文件将被正确复制,请从 -WhatIf
命令中删除 Copy-Item
。
powershell -NoLogo -NoProfile -Command ^
"Get-ChildItem -File -Path 'C:\Daten\Input' -Filter '???_*.zip' |" ^
'ForEach-Object {" ^
"if ($_.Name -match '^(\d{3})_.*') {" ^
"Copy-Item $_.FullName "C:\Daten\Target\$($Matches[1])" -Whatif" ^
"}" ^
"}"