Questions tagged «batch»

批处理是在没有用户干预的情况下执行一组命令或软件程序。批处理文件是一个文本文件,其中包含一系列此类命令或程序调用。请为此使用标签[batch-file]。

5
在Windows中,一个具有递归for循环的批处理文件,其文件名包括空格
我有一个文件夹树,像这样(这只是一个例子,在我的实际情况下会更深): C:\test | +---folder1 | foo bar.txt | foobar.txt | +---folder2 | foo bar.txt | foobar.txt | \---folder3 foo bar.txt foobar.txt 我的文件名称中有一个或多个空格,我需要对它们执行命令,因此我对foo bar.txt感兴趣,但对foobar.txt却不感兴趣。 我尝试了(在批处理文件中): for /r test %%f in (foo bar.txt) do if exist %%f echo %%f 该命令很简单echo。 它不起作用,因为跳过了空格并且没有输出。 这有效,但这不是我所需要的: for /r test %%f in (foobar.txt) do if exist %%f …
9 windows  batch 


1
在Windows批处理脚本中获取绝对路径的变量
我有以下脚本来从目录中递归列出具有.phtml扩展名的所有文件。 @echo off setlocal for /f %%G in ('forfiles /s /m *.phtml /c "cmd /c echo @relpath"') do echo %%G >> listoffiles.txt endlocal exit 它仅列出文件的相对路径。上面的脚本从中间位置运行,所以我没有在@relpath变量中获得完整路径。 另外,我在结果行中得到了引号,我希望将其删除。 我想通过一些代码更改获得到这些文件的绝对路径,如果可以在我的代码中使用的全局变量可用,那么这对我来说是最好的,因为我不是Windows批处理脚本编写者。

2
如何使用Windows命令行从EML文件中提取附件?
我有数百个EML文件,它们是带有附件的单个电子邮件。 我想使用脚本来获取附件,这就是为什么我正在寻找一种从命令行中的单个EML文件提取任何附件的方法的原因。 我可以解析每个文件以查找附件,并在其上使用base64解码器,但我希望有人已经编写了此文件。 有什么建议吗?

1
是否可以将文件列表通过管道传输到Windows上的RMDIR?
我正在为Windows命令提示符编写批处理文件,以删除与某个表达式匹配的所有目录。 我首先使用它DIR来返回与表达式匹配的目录的简单列表。我想将输出的每一行通过管道传递到RMDIR命令,如下所示: DIR *.delete /A:D /B /S | RMDIR /S /Q 但是上述命令似乎不起作用。我不完全理解为什么这行不通,并且感谢任何能够提供解释的人。


4
启动Windows批处理文件最大化
我编写了一个批处理文件,打算将其分发给几十台计算机。它会自动检查多个设备的工作状态。我最近在脚本的开头添加了一个“菜单”,提示用户选择要从列表中查询的特定项目。但是,该列表太长而无法滚动查看。 除了优化列表之外,我还可以添加什么以启动最大化的Windows Shell?我试图作弊和Right click the .bat -> Properties -> Change the "Run" state to "Maximized",但是这个选项不存在(坦率地说,我宁愿在脚本本身中添加此功能)。 运行脚本的计算机正在运行Windows 7


1
DOS批处理文件可按日期查找“新”文件
我的电脑进入了无限的BSOD循环-但是我确实可以访问安全模式的命令提示符。 我试图了解可能触发了此操作的“发生了什么变化”。例如,我可能感染了病毒,或者应用程序更新update花一现。 因此,我想查看在最近几天/一周内至少创建或修改了哪些文件,或者至少是* .exe,*。dll,*。com,*。bat等。 我以为我对Batch-fu没问题,但是我对如何编写快速的批处理文件/命令(为我列出文件)感到困惑。 REM This will find the files, but the results are all muddled REM all EXE files, reverse sort by date, recursively through sub-directories dir *.exe /O-D /S 我真正想要的是查找在过去3到7天内创建/修改的所有(可执行文件类型)。 谁能指出我正确的方向?

4
批量文件打印
我有一个用户必须打印约220个文档,每个文档平均2-3页。使用“全选-右键单击-打印”的标准Windows方法进行打印时,它会使打印服务器或打印机本身不堪重负。我正在寻找一种实用程序,该实用程序允许我一次处理5个文档,从而处理给定目录中的所有文档。我希望这可以减轻打印服务器的压力,也可以使用户不必再负担打印工作。我发现有一个程序可以让您安排一定时间的打印作业,但是(也许这不是破坏交易的程序)程序中的拼写很糟糕。

1
通过命令行配置Windows 8 / 8.1 / 10文件历史记录
tl; dr:有没有办法通过无人参与的命令行/某些脚本配置Windows 8文件历史记录? 很长的故事: 我正在配置很多独立(非域)PC,我认为一些备份比没有备份更好。在Windows 7上,我甚至配置了它的标准备份,尽管它被延迟了 - 默认情况下它会在每个星期一显着减慢计算机速度,除非有一些模糊的原因用户在周末之前没有关闭它的PC,它会填充备份介质并停止备份。 我辞职试图自动化其配置,但至少在那里我可以设置一次作为管理员,它对包括新用户在内的所有人都有效。我是 调度 (安排是 自动化 ) 自定义脚本 在备份媒体空间不足时删除旧备份,因此之后不需要维护(设置一次并忘记)。 从Windows 8开始,有一个名为文件历史记录的东西,它对用户的侵扰性很小(它的性能影响几乎不可察觉),它可以自行清理(基于年龄或自由空间的自动历史管理)。它是真正的备份解决方案,现在真实:) 但它还需要为每个用户手动配置。作为用户,这是不可接受的 将 忘了配置它。 我的计划是使用一些runonce登录脚本为每个用户配置它。我已经通过runonce-logon脚本做了一些事情,所以安装这样的脚本不是问题。但我不知道如何通过脚本配置文件历史记录。 我尝试了一些研究,但唯一的官员 (有一些非官方的调查结果,见下面的截图) 我找到的相关工具是 FhManagew.exe ,删除旧文件版本。我需要先通过GUI进行设置。在链接上,有完整的API,似乎可以通过该API配置文件历史记录。但我认为这是.NET应用程序的API,因此无法通过命令行使用它。或者可以吗? 尝试注册表搜索,但在任何地方都找不到文件历史记录位置:( 具体来说,假设我要设置文件历史记录 \\localhost\FileHistory$ 并保持文件版本,直到需要空闲空间(默认情况下,它永远保留)。这是它应该看起来的样子: 供参考:备份到本地共享是解决方法,使文件历史记录在单个HDD上工作,否则它声称它不安全。 以下是我通过注释找到的内容:配置存储在xml文件中 %LocalAppData%\Microsoft\Windows\FileHistory\Configuration。它在注册表项中引用 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\fhsvc\Parameters\Configs 使用值name =配置文件夹的路径(如上所述)和值data = REG_DWORD:1。 但只需添加这些文件和注册表值并启动服务( 有它的脚本 )无法启动备份,配置在控制面板中也不会更新。但是,如果已经配置了文件历史记录,则xml文件的更新将反映在控制面板中。

1
通过批处理文件检查Windows注册表中是否存在密钥
我担任公共服务的IT支持。 我们必须定期完成的一些工作是安装由我们自己的开发人员开发的一些软件。我们通常将其作为程序来执行,在某些情况下,我们不知道我们在做什么,知道该怎么做。在某些情况下,手头的任务是在Windows注册表中添加一些注册码。但由于这些程序中有许多依赖于基本相同的数据库,因此已经应用了一些步骤。我正在开发批处理文件以检查已经执行和未执行的步骤。 所以我想知道我是否有一个注册表文件,在Windows注册表中有很多要编辑的条目,我可以使用相同的条目来检查它们是否已经应用于注册表。如果我可以将注册表项的内容复制到批处理文件以检查条目,或者我是否需要同时发送批处理文件和密钥文件来执行此过程。

4
如何在不打开新命令行窗口的情况下使用“ schtasks”执行计划任务?
我有一个批处理文件,它使用以下命令创建计划的任务schtasks: schtasks /create /tn my_task_name /tr "...\my_path\my_task.bat" /sc daily /st 10:00:00 /s \\my_computer_name /u my_username /p my_password 它可以正常工作,除了在my_task.bat执行时-打开一个新的命令行窗口(执行后关闭)。 我想避免打开此新窗口(即在后台以安静模式运行任务)。 我想用 start /b ...\my_path\my_task.bat 但我不知道如何操作,因为由于必须start从批处理文件中调用,因此需要在之前加上cmd /c,这再次导致新窗口打开。 我该如何解决这个问题?

2
如何在变量(或者在文本文件中)中编写命令行7-zip的错误状态
我使用7-zip(在我的批处理文件中)打包一些目录并通过电子邮件发送存档。当我在批处理文件运行的同时在此目录中使用某个文件时(我使用任务计划程序启动批处理文件),我看到正在处理的警告消息。在此之后,当存档准备就绪时,7-zip会在发送电子邮件之前显示如下消息:“警告:无法打开29个文件”。当发生这种情况时,我希望能够设置一个环境变量(类似于 %MESSAGE% )使用值“29警告正在进行中”并将此消息放入电子邮件的主题中。但现在所能做的就是使用 %ERRORLEVEL% 变量。如果我不能设置一个 %MESSAGE% 变量,是否可以将警告消息写入文件,然后解析此文件以提取最后一行?

3
启动RDP远程桌面连接时自动连接到VPN,完成后断开VPN连接
我知道我可以创建一个批处理文件来启动VPN连接,然后是RDP会话,但我想知道是否有可能(在Windows 7中,理想情况下也是Windows XP)将VPN连接与RDP会话状态联系起来。 场景:用户必须首先使用VPN以便能够进行RDP。理想情况下,用户可以单击一个图标(批处理文件?)来启动VPN连接并加载RDP会话。当他们关闭RDP会话时,我希望VPN自动断开连接,这样他们就不会意外地通过VPN路由其后续的非RDP浏览+ Internet活动。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.