检查特定的命名约定
Check for specific naming convention
我有一个目录,用户在其中保存他们的 excel 文件,这些文件应遵守特定的命名约定:
XX-TestFile.xlsx
其中 XX
是一个可变数字,-TestFile.xlsx
应该始终相同且不会改变。如果目录中的文件符合特定的命名约定,我希望能够通过批处理作业进行检查。
如果文件名拼写错误,即 XX-TetsFiel.xlsx
、XX
不是像 02
甚至 XX-testfile.xlsx
(全部小写)这样的数字,则文件应移动到错误目录。
我在下面使用移动文件来实现这一点。我正在使用 11-testFiel.xlsx
进行测试,它工作正常。
@echo off
for /f "delims=" %%a in ('dir /b *.xlsx ^| findstr /v "[0-9][0-9]-TestFile.xlsx"') do move "%%a" "C:\Temp\Archive\Error"
但是,dir /b *.xlsx | findstr /v "[0-9][0-9]-TestFile.xlsx"
允许 109 种可能的组合,因为 XX
是一个具有两位数字的变量,如 02
。但是,我现在只想检查 20 个可能数字的特定文件名,如 02-TestFile.xlsx
、05-TestFile.xlsx
、10-TestFile.xlsx
等。此列表是固定的...例如,如果文件名为 99-TestFile.xlsx
我仍然想将它移至错误存档,因为它是一个不需要的文件名。您能为此提出解决方案吗?
将有效名称放入文本文件(即 "ValidNames.txt")并使用带有 /G 选项的 findstr。
02-TestFile.xlsx
05-TestFile.xlsx
10-TestFile.xlsx
...
@echo off
for /f "delims=" %%a in ('
dir /b *.xlsx ^| findstr /vxlg:"ValidNames.txt"
') do move "%%a" "C:\Temp\Archive\Error"
我有一个目录,用户在其中保存他们的 excel 文件,这些文件应遵守特定的命名约定:
XX-TestFile.xlsx
其中 XX
是一个可变数字,-TestFile.xlsx
应该始终相同且不会改变。如果目录中的文件符合特定的命名约定,我希望能够通过批处理作业进行检查。
如果文件名拼写错误,即 XX-TetsFiel.xlsx
、XX
不是像 02
甚至 XX-testfile.xlsx
(全部小写)这样的数字,则文件应移动到错误目录。
我在下面使用移动文件来实现这一点。我正在使用 11-testFiel.xlsx
进行测试,它工作正常。
@echo off
for /f "delims=" %%a in ('dir /b *.xlsx ^| findstr /v "[0-9][0-9]-TestFile.xlsx"') do move "%%a" "C:\Temp\Archive\Error"
但是,dir /b *.xlsx | findstr /v "[0-9][0-9]-TestFile.xlsx"
允许 109 种可能的组合,因为 XX
是一个具有两位数字的变量,如 02
。但是,我现在只想检查 20 个可能数字的特定文件名,如 02-TestFile.xlsx
、05-TestFile.xlsx
、10-TestFile.xlsx
等。此列表是固定的...例如,如果文件名为 99-TestFile.xlsx
我仍然想将它移至错误存档,因为它是一个不需要的文件名。您能为此提出解决方案吗?
将有效名称放入文本文件(即 "ValidNames.txt")并使用带有 /G 选项的 findstr。
02-TestFile.xlsx
05-TestFile.xlsx
10-TestFile.xlsx
...
@echo off
for /f "delims=" %%a in ('
dir /b *.xlsx ^| findstr /vxlg:"ValidNames.txt"
') do move "%%a" "C:\Temp\Archive\Error"