希望你能帮助我。我需要编写一个小批处理文件,可以放在用户的PC上(不是一个非常注重计算机的人)来检查文件夹(从服务器共享)并列出该文件夹中与文件模式不匹配的文件。我有一个每晚运行的应用程序,但文件必须命名为*_*_*.*
如果它不是这种格式的应用程序失败,即使应用程序会给出一些指示哪个文件不正确,浪费了一天,如果再次弄错了......另一天。他们需要能够运行这个简单的批处理文件,它只能在屏幕上显示错误命名的文件。
我开始阅读有关forFiles功能的内容,但是还没有能够弄清楚如何正确使用它。另外,我能直接引用此共享文件夹吗?现在,如果我们访问它,它看起来像这样:\ dhpServer1 \ PeopleFolder。这里是应该检查的文件。
非常感谢
答案 0 :(得分:1)
您可以生成完整的文件列表,并过滤那些与所需模式不匹配的文件。
dir /b /a-d "\\dhpServer1\PeopleFolder\*" | findstr /v /r /c:"^[^_][^_]*_[^_][^_]*_.*"
findstr
将过滤dir
命令的输出,显示与正常表达(/v
)不匹配(/r
)的行({{ 1}}):
/c:
可能需要调整表达式。这个表达式只是我的解释(当然我可能是错的)你所写的^ at the start of the line
[^_] a non underscore character
[^_]* followed by zero or more non underscore characters
_ followed by an underscore
[^_] followed by a non underscore character
[^_]* followed by zero or more non underscore characters
_ followed by an underscore
.* followed by any sequence of zero or more characters
,但与*_*_*.*
中通配符的行为不匹配命令。 dir
更接近指示的通配符表达式的行为。
答案 1 :(得分:1)
@Override
public String toString()
{
return WordPuzzleGenerator.toString (puzzleListX,puzzleListY);
}
您需要更改Router.route('/settings', {
name: 'settings',
data: function() {
return Settings.findOne({userId: Meteor.user()._id});
}
});
的设置以适合您的具体情况。
以下是示例输出:
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\t w o"
SET "errorfound="
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*" '
) DO (
SET "error="
FOR /f "tokens=1-3*delims=_" %%p IN ("q%%a") DO (
IF "%%p" equ "q" SET error=Y
IF "%%s" neq "" SET error=Y
IF "%%r" equ "" SET error=Y
IF NOT DEFINED error (
FOR /f "tokens=1,2*delims=." %%x IN ("q%%r") DO (
IF "%%x" equ "q" SET error=Y
IF "%%y" equ "" SET error=Y
IF "%%z" neq "" SET error=Y
)
)
IF DEFINED error (
ECHO %%a is invalid FORMAT
SET errorfound=y
) ELSE (ECHO %%a is OK)
)
)
IF DEFINED errorfound (
ECHO error found
PAUSE
) ELSE (
ECHO All OK!
timeout /t 5 >nul
)
GOTO :EOF
如果所有文件都是有效格式,则该过程应显示apprpriate消息5秒钟并终止。
原则是在sourcedir
和a_valid_file.name is OK
_invalid_file.namestartingunderscore is invalid FORMAT
an_invalid_file_name.toomanyundescores is invalid FORMAT
invalid_file.nameinsufficientunderscores is invalid FORMAT
an_invalid_.filenameterminalunderscoreinname is invalid FORMAT
an_extra_invalid_.filenameterminalunderscoreinname is invalid FORMAT
an_invalid_filenamewithnoextension is invalid FORMAT
an_invalid_filenamewith.multiple.extensions is invalid FORMAT
error found
Press any key to continue . . .
用作分隔符并利用_
特征来切换是否发生错误时,通过标记来评估名称的单独部分逐个实例。