Batch file 批处理-findstr中的错误
我的目标是Batch file 批处理-findstr中的错误,batch-file,findstr,Batch File,Findstr,我的目标是 映射网络文件夹 在每个确定的日期查找具有特定注册号的文件 将文件复制到特定位置 这是我的密码: set "folder=" set "date=" set "No=" set "fileName=" echo: set /p folder=Please enter the folder name echo: set /p date=Please enter report date yyyymmdd = echo
set "folder="
set "date="
set "No="
set "fileName="
echo:
set /p folder=Please enter the folder name
echo:
set /p date=Please enter report date yyyymmdd =
echo:
set /p No=Please enter registration number =
echo:
net use Q: \\%folder%\d$\h
net use R: \\%folder%\d$\p
CD Q:\%date%\0\ | findstr /i %No% "*.*"
echo:
set /p fileName=Paste filename to resend =
echo:
copy %fileName% y:
echo:
echo Copy Complete
echo:
以下是输出:
Please enter the folder you want to connect/reconnect = 0714
Please enter report date yyyymm = 201407
Please enter registration number = 74471958
The command completed successfully.
The command completed successfully.
FINDSTR: Cannot open NTUSER.DAT
FINDSTR: Cannot open NTUSER.DAT.LOG
Paste filename to resend =
我当前正在从D:运行批处理,我已将findstr.exe复制到运行批处理文件的同一文件夹中
目前我真的没有主意了,希望有人能给我指出正确的方向。需要
findstr.exe
的问题恰恰取决于您如何执行此批处理。此可执行文件应位于c:\windows\system32
中,并且该目录应位于路径中。我将echo%path%
并从那里开始追踪它
下一个问题是%date%
。这是一个神奇的变量,它包含当前日期。它可以被set
命令覆盖,但是如果它像您在代码中所做的那样设置为nothing,那么它将以当前用户的格式返回当前系统日期
AFAIAA,CD
不产生输出;它只是更改目录
我怀疑您使用的是cygwin
,它为某些命令提供了不同的定义。您的问题在于:
CD Q:\%date%\0\ | findstr /i %No% "*.*"
管道|
获取上一个命令的输出并将其提供给下一个命令
cd
命令的输出为空(或“系统无法找到此路径”)
所以这不是(我认为)你需要的
我想,您应该转到Q:\%date%\0\
并在那里搜索包含%no%
的文件
为此,请使用:
cd /d "Q:\%date%\0\"
findstr /i %No% "*.*"
您需要使用/d
参数和cd
来切换到另一个驱动器(或使用pushd
而不是cd
)