我的目标是
这是我的代码:
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 复制到运行批处理文件的同一文件夹中。
目前,我真的没有想法,希望有人能指出我正确的方向。
答案 0 :(得分:1)
你的问题是:
CD Q:\%date%\0\ | findstr /i %No% "*.*"
管道|
获取上一个命令的输出并将其提供给以下命令。
cd
命令的输出为空(或"系统无法找到此路径")。
所以这不是,(我认为)你需要什么。
我想,你想转到Q:\%date%\0\
并在那里搜索包含%no%
的文件。
为此,请使用:
cd /d "Q:\%date%\0\"
findstr /i %No% "*.*"
您需要/d
参数与cd
更改为另一个驱动器(或使用pushd
而不是cd
)
答案 1 :(得分:0)
需要findstr.exe
的问题取决于您执行此批次的具体方式。此可执行文件应位于c:\windows\system32
中,该目录应位于path
中。我echo %path%
并从那里继续追求。
下一个问题是%date%
。这是一个神奇的变量并且包含当前日期。它可以被set
命令覆盖,但如果它在您的代码中设置为 nothing ,那么它将返回当前用户的当前系统日期& #39; s格式。
AFAIAA,CD
没有输出;它只是改变目录。
我怀疑你正在使用cygwin
,它为某些命令提供了不同的定义。