在 XP 和 Vista 上从批处理脚本中查找用户的 Documents 文件夹的最佳方法是什么?假设它是 %USERPROFILE%\Documents 是否安全?
我有很多 bat 文件,它们共享一个通用的变量设置。而不是一遍又一遍地定义相同的变量(并在过程中出错),我想在所有其他文件中包含一个 bat 文件。
我该怎么做呢?请原谅我的新手问题,但我最后一次接触 bat 时,它是一个名为 autoexec.bat 的文件,很久以前......
谢谢!
我有一个批处理文件,它停止服务并从 d:\ 驱动器中删除文件。我想在 20 台服务器上执行此操作。有没有比手动登录每个服务器、复制和运行批处理文件更快的方法?
我有一个 bat 文件,其中包含以下内容:
sm start "Schedule"
Run Code Online (Sandbox Code Playgroud)
此代码运行但命令窗口立即关闭
我可以在bat文件中放什么来保持窗口打开?
copy \\server01\E$\LogFiles\IVR\bcR\??120428.* \\LBC\workgroup\cs\ftp\Team\bcR\
copy \\server02\E$\LogFiles\IVR\bcR\??120428.* \\LBC\workgroup\cs\ftp\Team\bcR\
copy \\server03\E$\LogFiles\IVR\bcR\??120428.* \\LBC\workgroup\cs\ftp\Team\bcR\
copy \\server04\E$\LogFiles\IVR\bcR\??120428.* \\LBC\workgroup\cs\ftp\Team\bcR\
Run Code Online (Sandbox Code Playgroud)
这是我当前的脚本,我必须每周更改日期。我正在寻找一个脚本,它将查看今天的当前日期减去一天,并且可以修改 12 04 28。(年月日样本 120408)。我需要昨天的约会。此脚本在 DOS 中
在 Windows 7 任务调度程序中,我有一个在任何用户登录时运行的任务。此任务以管理员身份运行,因此它可以获得适当的权限并运行 bat 文件。
我想将触发任务的登录用户的用户名(userid)传递给 bat 文件。我需要使用管理员帐户运行 bat 文件,这会导致环境变量 USERNAME 被设置为管理员而不是登录的用户名。
您如何获取登录导致任务触发的用户的用户 ID?
x3 服务器 2012 R2、x2 服务器 2012
我的系统有 5 台服务器;1 台 Hyper-V 服务器托管 2 台 vm 服务器(这些是 x3 2012 R2 服务器),以及一台运行 Hyper-V 的 Win 8.1 pc,托管另外 2 台 vm 服务器(这些 vm 是 x2 2012 服务器)。
服务器每 45 天警告一次更改密码。这是仅在每台服务器上的手动过程,还是有一些快捷方式/批处理可以允许同时更改所有服务器上的密码?
batch-file batch password-management windows-server-2012 windows-server-2012-r2
在 Bash 中,我可以在不知道完整目录名的情况下移动目录,如下所示:
mv gradle-*/ gradle/
我如何在cmd(即批处理文件,而不是powershell)中执行此操作。
该move命令似乎不允许这样做。
我遇到了一个问题,我的经验(和 Google-fu)让我失望。
基本上,我需要将KB968730推送给几百个左右的客户。当然,希望在开始安装之前检查修补程序的安装。遗憾的是,我需要使用脚本和 GPO 来执行此操作,而不是像 SCCM 这样的适当系统。通常不会给我带来任何问题的东西,但是,似乎有一个问题。
问题是此修补程序安装的注册表项的路径中有一个血腥的空间。具体来说,它安装到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix\KB968730.
毫不奇怪,标准的批处理文件/CMD 命令reg.exe query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix\KB968730会引发语法错误并弄乱了我的批处理文件的安装检查部分 - 它将路径的第二部分视为第二个参数。所以,当然,我尝试用双引号封装路径,没有乐趣。单引号,没有乐趣。威胁我的操作系统和/或 Microsoft 也没有产生结果。
经过一些谷歌搜索和咒骂之后,我找到了似乎可以解决此问题的方法,但无法完全正常工作,出于某种原因我无法弄清楚。(毫无疑问,因为这些天我的编码技能很弱,而且字符串标记化在最好的时候让我陷入了循环。)
似乎我想使用的是这样的:
for /f "Tokens=2,*" %%a in (‘reg.exe "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix\KB968730" /v Path’) do (set xpath=%%a)然后使用%xpath%,但这不起作用。将标记设置为 1 给我空间之前的路径,设置为 2 给我空间之后的路径,我不知道如何将一个值附加到另一个值。特别令人沮丧,因为我看到的所有答案都说“谢谢,它奏效了!!!” 或类似。*(需要注意的是,%直接在命令行上执行时删除一个。)
有谁知道我在这里搞砸了什么?
或者,如果有人仍然使用 VBS 并且知道如何使用它,我很乐意选择该选项。(不过,没有 PowerShell,因为我们的 XP 客户端没有安装它。)
PS,如果这更适合 StackOverflow,我对它的迁移没有任何问题,但我最初的想法是“我们”不喜欢开发人员来到这里并向 [向我们] 询问有关设置他们的开发的琐碎问题机器,所以我想他们可能会对我的问题有同样的感觉。
我想列出并终止属于使用端口的特定进程的会话的所有进程。这应该通过 Windows 批处理命令来实现,该命令接受端口号作为输入。
例如:假设进程 PA 当前正在侦听端口 8081。PA 运行在会话 S1 下。有进程 PB 和 PC 与 PA 属于同一会话。PB和PC将运行在不同的端口上(它们运行在哪个端口上并不重要)
Windows 命令/批处理文件应以 8081 作为输入并终止进程 PA、PB 和 PC。
这可能吗?感谢对此的一些帮助,因为我不太熟悉批处理命令/脚本。
我失败的尝试:
(for /F "tokens=2" %%i in (for /f "tokens=5" %a in ('netstat -aon ^| findstr 8081') do tasklist /NH /FI "PID eq %a") do taskkill /NH /FI "SESSIONNAME eq %%i")
Run Code Online (Sandbox Code Playgroud) batch-file ×10
windows ×4
batch ×3
scripting ×2
windows-xp ×2
date ×1
ms-dos ×1
powershell ×1
windows-7 ×1