AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[batch-file](server)

Martin Hope
Cal
Asked: 2021-09-02 10:20:11 +0800 CST

cmd - 在所有其他并发批处理文件完成后运行批处理文件

  • 0

我有一个简单的批处理文件,它调用其他批处理文件,它看起来像这样:

start /b run_part1.bat
start /b run_part2.bat
start /b run_part3.bat
start /b run_part4.bat

run_last.bat  // fires immediately, how to make this line wait until above finishes?

使用 /b 前 4 个文件将同时运行。全部将在 1.5 小时内完成。

在所有四个文件完成后,我需要另一个脚本来进行一些清理。但是 run_last.bat 不会等待前 4 个文件,它会与前 4 个文件同时调用。

有没有办法实现它?

谢谢你。

batch-file windows-command-prompt
  • 3 个回答
  • 752 Views
Martin Hope
wb6vpm
Asked: 2021-09-01 10:42:34 +0800 CST

寻找一种使用批处理文件替换目录树中非零大小文件的每个实例的方法

  • 0

我试图找出一种方法让批处理脚本覆盖特定目录及其子文件夹中非零字节文件的每个实例。我猜,因为我正在寻找一个非零文件,如果它找不到任何非零大小的文件,我可能会用转义符循环它?

例如,覆盖每个非零文件大小的 example.txt 实例:

D:\
\---SubFolder1
    |   example.txt <10 bytes>
    |
    \---Subfolder2
        |   example.txt <0 bytes>
        |
        \---Subsubfolder1
                example.txt <20 bytes>

在示例中,D:\Subfolder1\example.txt 和 D:\Subfolder2\Subsubfolder1\example.txt 将被覆盖,但 D:\Subfolder2\example.txt 不会更改。

感谢@NiKiZe 的所有帮助!

工作代码:

@ECHO 关闭

设置 DPATH=%~dp0

FOR /R "%DPATH%" %%F IN ( *** 见下文) 如果 %%~zFGTR NEQ 0 CALL :NonEmptyFile "%%~F"
GOTO :EOF

:NonEmptyFile
ECHO 得到非空文件: %1
呼叫:EOF

*** 替换为您要替换的文件名,确保在某处使用单个字符通配符(我在扩展名中使用了它 - 例如,如果我正在搜索 example.txt,我将 * 替换为 example.t ?t)

windows batch-file windows-command-prompt batch
  • 1 个回答
  • 176 Views
Martin Hope
Abhijith Gururaj
Asked: 2020-08-18 05:01:12 +0800 CST

如何在 Windows cmd 中使用端口的特定进程的会话下获取所有进程

  • 3

我想列出并终止属于使用端口的特定进程的会话的所有进程。这应该通过一个接受端口号作为输入的 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")
windows powershell batch-file windows-command-prompt batch
  • 3 个回答
  • 1155 Views
Martin Hope
MitSM
Asked: 2020-03-03 04:26:55 +0800 CST

Batch 脚本中的命令理解

  • 3

我有一个调用工具的批处理文件。现在我在for循环的批处理文件中遇到了一个问题。但是通过对批处理脚本的所有研究,我仍然无法弄清楚表达式想要表达的意思。在为这条线挖了几天之后,我转向这个论坛寻求帮助。for 循环如下:

for /f "tokens=1-3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (    @echo Debug Output: %%g    set JAVAVER=%%g  )

我了解它的 for 循环试图设置 JAVA 版本并运行不同的文件,但问题是它没有执行预期的任务,因此我需要进一步了解以下行的评估内容:

('java -version 2^>^&1 ^| findstr /i "version"')

另外让我更加困惑的是,如果我单独运行以下命令,它会给出如下输出,其中没有任何“版本”文本。但是同样的命令,如果我像上面一样运行,确实会给出当前 java 版本的输出。

代码:

for /f "tokens=3" %%g in ('java -version 2^>^&1') do (    @echo Debug Output: %%g    set JAVAVER=%%g    )

输出:

Debug Output: "1.8.0_231"
Debug Output: Runtime
Debug Output: 64-Bit

回复 Doug Deden 的示例:

当我在下面执行时,它确实显示了 echo 命令输出。

for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (
@echo Debug Output: %%g
set JAVAVER=%%g
@echo %JAVAVER%
)

但是当我通过删除 来执行上述操作时2^>^&1,它不会考虑回显命令。

我的困惑是,当我将2^>^&1部分放入代码中时,标准错误被重定向到标准输出,但是如果我完全删除它会发生什么?它是否重定向到其他一些输出,以及为什么它停止回显命令?

windows batch-file
  • 1 个回答
  • 704 Views
Martin Hope
Shane_Wilson009
Asked: 2019-06-01 10:13:52 +0800 CST

批处理:将“输入键”传递给嵌套程序(MPIExec 运行的程序)

  • 0

我需要什么:在批处理仍在处理前一行时发送“输入”键。

我正在尝试使用批处理让 .exe 通过一系列输入文件运行。下面的批处理文件运行一个程序,创建一个输出文件,复制它,然后清理文件夹以运行下一组输入变量。

问题是运行 .exe 后,它显示“按 Enter 继续”。

@if (@CodeSection == @Batch) @then
set SendKeys=CScript //nologo //E:JScript "%~F0"

for %%i IN (1,2,3) do (
    mpiexec --ppn 20 myprogram "input%%i.input"
    %SendKeys% "{ENTER}"
    xcopy "D:\Original\input%%i-*" "D:\Output\output%%i-*"
    clean.bat
)
pause

goto :EOF
@end
// JScript section
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));

我尝试了什么:

  • 在“myprogram”之后使用sendkeys,结果:程序仍然需要输入。
  • 在“myprogram”之前使用sendkeys,结果:程序仍然需要输入。
  • 将 sendkeys 与“ping”结合使用。延迟发生在程序之前或之后,所以没有用。
  • 尝试在 sendkeys 命令中“管道”。出错了。

想法?

batch-file
  • 1 个回答
  • 1603 Views
Martin Hope
user519110
Asked: 2019-04-13 19:51:54 +0800 CST

您可以在函数中求和还是使用“!” 内 '!' 在cmd中?

  • 0

在cmd中延迟扩展有一些困难。

这可能是一个愚蠢的问题,但有没有办法在函数内求和(即没有“set”)或在函数内求和!(!或类似效果的东西);例如,~%%n+%y%在下面的情况下,可以通过使用括号将其视为其部分的总和,还是我应该从不同的角度来看待它?

for /l %%n in (10 1 36) do (
for /f %%a in ("!alpha:~%%n+%y%,1!") do (
set "code=!code:%%n=%%a!"))

任何帮助将不胜感激。谢谢

batch-file
  • 1 个回答
  • 152 Views
Martin Hope
slantalpha
Asked: 2019-04-09 13:55:43 +0800 CST

Windows 批处理文件脚本:如何获取以最新日期命名的目录(yyyy-mm-dd 格式)?

  • 1

我有一个包含许多子目录的目录。每个子目录都以 yyyy-mm-dd 格式命名。我正在编写一个 Windows 批处理文件,我需要获取具有最新日期的目录名称并将该字符串放入一个变量中。最后修改日期已更改,因此不能选择使用最后修改时间戳。

谁能指出我正确的方向?

batch-file
  • 1 个回答
  • 1485 Views
Martin Hope
derHugo
Asked: 2018-01-30 08:00:02 +0800 CST

使用 robocopy 复制单个文件

  • 3

我正在编写批处理文件以将某个文件复制到 samba 共享。

我已经阅读了robocopy 传输文件而不是文件夹 ,并认为我会很好地使用

robocopy "E:\Some\Path\with spaces" "\\sambaServer\some\path\with spaces" "myFile.rar" /z /MIR

但我一直在看

Source: E:\Some\Path\with spaces\
Destination: \\sambaServer\Some\path\with spaces" myFile.rar \Z \MIR\

Files: *.*

当然我得到一个错误

ERROR 123 (0x0000007B) Accessing Destination folder \\sambaServer\Some\path\with spaces" myFile.rar \Z \MIR\ 文件名、文件夹名或卷标的语法不正确。

所以显然robocopy将整个第二部分 - 目标文件夹,文件和参数 - 一起作为目标文件夹。

为什么这不起作用?我究竟做错了什么?


当我复制整个文件夹而不是使用

robocopy "E:\Some\Path\with spaces" "\\sambaServer\some\path\with spaces" /z /MIR
batch-file
  • 1 个回答
  • 26690 Views
Martin Hope
J. Parashar
Asked: 2016-12-29 04:49:12 +0800 CST

当用户在 Windows 中选择“切换用户”时触发批处理文件

  • 2

我通过一个文件将所有用户的登录/注销详细信息保存到一个文本文件.bat中,该文件由Task Scheduler(在工作站锁定/解锁上)/ gpedit.msc(在用户注销/登录上)执行。

我想在选择切换用户.bat时运行相同或任何文件,而不是在. 该文件看起来像CTRL+ALT+DEL.bat

echo Logoff: %date% %time:~0,5% %UserName% >> c:\Logs\History.txt

有什么办法吗?

task-scheduler windows-7 batch-file
  • 1 个回答
  • 2365 Views
Martin Hope
hdk
Asked: 2016-12-10 12:15:52 +0800 CST

Windows 上“call perl script.pl”与“call script.pl”之间的区别

  • 1

在 Windows 服务器上(我测试了 2008 R2 和 2012 R2),我们注意到从批处理调用的 Perl 脚本的执行有不同的行为。

考虑如下原始批处理文件:

:beginlbl
call path\script.pl
goto :beginlbl

迟早(有时在数百次执行后仅执行几次脚本后)会出现错误消息: “Windows 无法访问指定的设备、路径或文件。您可能没有适当的权限来访问该项目。”

如果将第二行代码修改为如下所示:

call perl path\script.pl

(注意脚本前的可执行文件名。)脚本将永远运行而不会出现问题。

在上述两种情况下,Windows 的执行方式有何不同?

windows batch-file batch windows-server-2008-r2 windows-server-2012-r2
  • 2 个回答
  • 1044 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve