批量排除*.lyx~文件(windows)
我刚刚创建了以下批处理文件,将我的所有lyx文档保存为tex文件:批量排除*.lyx~文件(windows),windows,batch-file,cmd,lyx,Windows,Batch File,Cmd,Lyx,我刚刚创建了以下批处理文件,将我的所有lyx文档保存为tex文件: cd /d "D:\" :: if the "for"-command is executed from the command line, just use "%" rather than "%%" for /R %%g in (*.lyx) do "C:\Program Files (x86)\LyX 2.1\bin\lyx.exe" --force-overwrite --export pdflatex "%%g" 现在
cd /d "D:\"
:: if the "for"-command is executed from the command line, just use "%" rather than "%%"
for /R %%g in (*.lyx) do "C:\Program Files (x86)\LyX 2.1\bin\lyx.exe" --force-overwrite --export pdflatex "%%g"
现在的问题是,批处理使用的不是*.lyx文件,而是*.lyx~文件,据我所知,这些文件是某种备份文件,不包含最新内容
如何修改批处理文件,使其采用*lyx文件而不是*.lyx~文件
任何建议都会大有帮助
最佳:——)
PS:如果我在命令行中键入此代码(不使用批处理),则一切正常。@Edit1:added
tokens
选项。现在它在带有空格的子曲面中工作
将您的for
循环修改为:
for /F "tokens=*" %%g in ('dir /b /s *.lyx') do if "%%~xg" equ ".lyx" (
"C:\Program Files (x86)\LyX 2.1\bin\lyx.exe" --force-overwrite --export pdflatex "%%g"
)
另一个解决办法是使用
至于第三条评论,我认为它同时具有这两种功能,但它在最后使用了.lyx~
要查看批处理文件的输出,只需从
cmd
窗口启动它。@Edit1:addedtokens
选项。现在它在带有空格的子曲面中工作
将您的for
循环修改为:
for /F "tokens=*" %%g in ('dir /b /s *.lyx') do if "%%~xg" equ ".lyx" (
"C:\Program Files (x86)\LyX 2.1\bin\lyx.exe" --force-overwrite --export pdflatex "%%g"
)
另一个解决办法是使用
至于第三条评论,我认为它同时具有这两种功能,但它在最后使用了.lyx~
要查看批处理文件的输出,只需从
cmd
窗口启动它。您是说它只处理.lyx~文件(不处理.lyx文件)?在我的机器(W7 x64)上,它处理所有这些文件(从批处理和cmdline)。对,生成的tex文件不包含*.lyx文件中的内容,而是包含存储在*.lyx~文件中的内容……为了复制:我创建一个lyx文件,比如说内容为“old”,然后使用批处理创建tex文件,然后将lyx内容更改为“new”然后再次运行批处理。tex文件没有更新,仍然包含“old”,就像lyx~文件所包含的一样……当您只需双引号引用的设置参数(如for/R%%g in(“*.lyx”)do
)时,它是否起作用?(可能需要使用“%%g”
而不是的“%%g”
正文中的”
)您是说它只处理.lyx~文件(不处理.lyx文件)?在我的机器(W7 x64)上,它处理所有这些文件(从批处理和cmdline)。对,生成的tex文件不包含*.lyx文件中的内容,而是包含存储在*.lyx~文件中的内容……为了复制:我创建一个lyx文件,比如说内容为“old”,然后使用批处理创建tex文件,然后将lyx内容更改为“new”然后再次运行批处理。tex文件没有更新,仍然包含“old”,就像lyx~文件所包含的一样……当您只需双引号引用的设置参数(如for/R%%g in(“*.lyx”)do
)时,它是否起作用?(可能需要使用“%%g”
而不是“%%g”
中的”
)我根据您的帖子更改了for循环。这就解决了问题!非常感谢你。只有一件事,现在,子文件夹不再包含。是否有一个简单的解决方案可以同时包含子文件夹?即使包含子文件夹的部分仍处于打开状态,我也要这样做吗?对不起,我没有注意整个答案:)。这怎么可能?这就是传递给dir
的/s
标志所做的(应该做的)。您使用的Windows版本是什么?发生了一些奇怪的事情。什么将dir/b/s*.lyx
输出?我也是。我甚至在XP上试用过,效果很好。嗯,如果您不转换文件,而只是回显它们的名称:echo“%%g”
,会发生什么?lyx.exe
在哪里生成输出文件?就在震源旁边?震源旁边,对!使用echo无法看到发生了什么,窗口立即再次关闭…我根据您的帖子更改了for循环。这就解决了问题!非常感谢你。只有一件事,现在,子文件夹不再包含。是否有一个简单的解决方案可以同时包含子文件夹?即使包含子文件夹的部分仍处于打开状态,我也要这样做吗?对不起,我没有注意整个答案:)。这怎么可能?这就是传递给dir
的/s
标志所做的(应该做的)。您使用的Windows版本是什么?发生了一些奇怪的事情。什么将dir/b/s*.lyx
输出?我也是。我甚至在XP上试用过,效果很好。嗯,如果您不转换文件,而只是回显它们的名称:echo“%%g”
,会发生什么?lyx.exe
在哪里生成输出文件?就在震源旁边?震源旁边,对!无法使用echo查看发生了什么,窗口立即再次关闭。。。