我创建了一个bat脚本来安装软件,然后使用fnr.exe进行查找和替换。 我已经生成了很少的fnr.exe命令,并将它粘贴在.bat。
中现在,因为我已经用fnr.exe生成了它,所以我编辑了这些命令,首先在C:\ Software \ fnr.exe下找到fnr.exe应用程序,如下所示(仅举例):
"C:\Software\fnr.exe" --silent --cl --dir "C:\software\bin" --fileMask "*.*" --excludeFileMask "*.dll, *.exe" --includeSubDirectories --find "Enabled= 0" --replace "Enabled= 1"
现在我的服务团队技术性很强,在客户端计算机上安装此软件时,他们可能会将软件安装(文件夹)复制到不同的位置,例如桌面,这意味着我的bat文件不会#39;能够找到fnr.exe(因为它应该在C:\ software下的脚本),因此查找和替换将失败。
周围有办法吗?有什么建议?我可以在脚本中做一些可以概括的东西吗,在他们复制setup文件夹的位置来安装客户端机器上的软件并不重要吗?
谢谢
答案 0 :(得分:1)
如果我在这里正确理解你,你可以这样做:
fnr.exe --silent --cl --dir "C:\software\bin" --fileMask "*.*" --excludeFileMask "*.dll, *.exe" --includeSubDirectories --find "Enabled= 0" --replace "Enabled= 1"
只要fnr.exe与批处理文件位于同一文件夹中,那就可以正常工作。
如果这不起作用,可能是因为批处理文件是从另一个文件夹运行的(例如C:\Software\Example.bat
;当前目录可能在任何地方。
在这种情况下,请执行以下操作:
pushd "%~dp0"
fnr.exe --silent --cl --dir "C:\software\bin" --fileMask "*.*" --excludeFileMask "*.dll, *.exe" --includeSubDirectories --find "Enabled= 0" --replace "Enabled= 1"
popd
这会暂时将当前目录设置为批处理文件的目录。 (source)功能