我正在尝试为要发布源代码的 Unreal Tournament 2004 mod 编写构建脚本批处理文件。此脚本包含对带有 /EXCLUDE 参数的 XCOPY 调用,如下所示:
XCOPY "%ProjectFolder%*" "%BuildFolder%" /S /C /Y /EXCLUDE:"%ProjectFolder%Build\CopyExcludes.cfg"
Run Code Online (Sandbox Code Playgroud)
出于某种原因,该命令告诉我它无法读取 CopyExcludes.cfg 文件。我该如何解决?
在批处理文件中,%ProjectFolder% 是源文件的基本文件夹,包括尾部反斜杠。%BuildFolder% 是 UT2004 文件夹中编译器期望文件所在的子文件夹。我运行批处理文件ECHO ON以查看扩展变量:
C:\UT2004>XCOPY "C:\UT2004\EvenMatch\*" "C:\UT2004\EvenMatchV1" /S /C /Y /EXCLUD
E:"C:\UT2004\EvenMatch\Build\CopyExcludes.cfg"
Datei "C:\UT2004\EvenMatch\Build\CopyExcludes.cfg" kann nicht gelesen werden.
0 Datei(en) kopiert
Run Code Online (Sandbox Code Playgroud)
(不要管命令中明显的换行符,这只是 80 个字符后的 CMD 窗口硬换行文本。)
奇怪的是,我可以将命令放在type "%ProjectFolder%Build\CopyExcludes.cfg"XCOPY 命令之前和之后,它可以正确显示批处理文件中两个位置的文件内容:
C:\UT2004>type "C:\UT2004\EvenMatch\Build\CopyExcludes.cfg"
.svn
.bak
.git
.cfg
#
~
C:\UT2004>XCOPY "C:\UT2004\EvenMatch\*" "C:\UT2004\EvenMatchV1" /S /C /Y /EXCLUD
E:"C:\UT2004\EvenMatch\Build\CopyExcludes.cfg"
Datei "C:\UT2004\EvenMatch\Build\CopyExcludes.cfg" kann nicht gelesen werden.
0 Datei(en) kopiert …Run Code Online (Sandbox Code Playgroud) 我正在尝试返回一个文本文件,其中包含有关文件夹及其子文件夹中图像文件的一些详细信息。具体来说:
这些属性可能并非对每个图像都可用 - 我不确定这是否会成为问题。
获取文件列表很好;DIR C:\[...]\FOLDER\*.* /S| (我认为)。这是我不确定的下一部分;我在其他操作系统上找到了信息,我也听说过WMIC建议。我尝试将其与单个文件的测试一起使用:
wmic datafile where Name="C:\[...]\IMG_5443.JPG" get Name,FileType > "C:\[...]\info.txt"
Run Code Online (Sandbox Code Playgroud)
但它返回Error: Invalid query所以我猜 WMIC 不适用于图像,或者至少某些参数需要更改。
我还注意到,当我输入wmic datafile get/?该维度时,未将其列为可用属性之一。这就是我所知道的故障排除方法。
那么有没有办法使用命令行在 Windows 中返回图像文件(或文件列表)的属性。如果没有,我愿意接受任何不需要安装额外软件的东西。有什么建议?
是否有相当于 bash 的 Windows 批处理set -e,如果命令以非零退出状态失败(除了在if语句中预期的地方),它会导致 shell 立即退出?if errorlevel 1 exit 1在每一行之后我都会很累。
当我启动我的笔记本电脑时,我想打开两个程序,A 和 B。我可以使用启动文件夹来做到这一点,但我想在我的第一个桌面中打开 A,在我的第二个桌面中打开 B。这在 Windows 10 中可能吗?也许有批量解决方案?
谢谢
我有一个从 AT 命令运行的批处理脚本,并且可能会多次运行。当它启动时,我需要它检测它是否已经在运行,如果是,立即退出(第二个)。
我正在使用 PowerShell Get-Process 查看 MainWindowTitle,但是当远程连接到计算机时这不起作用,因为脚本可能正在运行,但未显示在此远程连接实例中。在这种情况下,Get-Process 可以看到 cmd 进程,但 MainWindowTitle 是空白的。
我试过 Get-Process 并查看了扩展的 StartInfo.EnvironmentVariables 属性,但看不到如何创建 env var 以便它出现在属性中。
我想过在启动命令中使用/WAIT,然后AT会一直打开直到它完成,但是包含AT的脚本没有被最小化
有任何想法吗?
我有几个计划任务,每个任务都执行一个(不同的)批处理文件。每个批处理文件调用同一个程序,使用单独的命令行参数。如果我在运行时停止任务,批处理文件中的程序仍会运行。(批处理文件是一个单行文件,只执行程序。)
当我停止调用批处理文件的任务时,如何强制从批处理文件启动的程序强制退出?
作为一种解决方法,我在正在运行的进程中查找任务,并通过进程 id 杀死它。我想要一个从任务计划程序管理的更干净的解决方案。
我已经研究了一段时间,但我不明白这是如何工作的。我需要的是:
为什么我需要这个?因为我需要运行一个简单的批处理文件来做一些事情,但我需要只能在 PowerShell 中工作的高级功能。具体来说:我需要SaveFileDialog一些应用程序。
以下是我现在所拥有的,在那里我剥离了SaveFileDialog.
<# :
@echo off
setlocal
powershell -noprofile "iex (${%~f0} | out-string)"
goto :EOF
#>
Write-Host "Hello, I'm PowerShell!"
Run Code Online (Sandbox Code Playgroud)
如果我把所有这些都放在一个批处理文件中,比如说,myfile.bat. 它运行并调用 PowerShell 并写入该消息。
我的问题/请求:如何运行myfile.bat param1 param2 param3,并将这些参数/参数传递给我的 PowerShell 脚本?我真的很感激一个最小的例子,它只是通过 powershell 的write-host.
请随时询问更多详情。谢谢!
windows powershell command-line command-line-arguments batch-file
无论出于何种原因,我都遇到了 robocopy 问题。
我有几个我每天使用的脚本,它们利用 copy、xcopy 和 robocopy,它们目前都在工作,除了这个。我正在使用我在其他脚本中使用的相同的标准开关。
robocopy "K:\Some Folder" "H:\Files\1" /e /w:0 /r:2 /MIR
Run Code Online (Sandbox Code Playgroud)
直接K:\Some Folder复制任何文件。但在任何文件,说K:\Some Folder\Some Subfolder千万不能被复制。我查了一下,使用 /s 或 /e 也应该复制子目录中的所有文件。为什么不是?如果我暂停脚本,它会在某些地方显示“*额外文件”——这可能与它有关。
以前我是用这些开关的,但是简化后还是不行:
/e /w:0 /r:2 /XO /NFL /NDL /NJH /NJS /nc /ns /np
Run Code Online (Sandbox Code Playgroud) 假设我有多个网卡,每个网卡都连接到不同的路由器和 ISP。
如何强制应用程序使用特定连接?当我启用 Windows 10 中的所有连接时,所有应用程序都将连接到第一个启用的应用程序
有没有软件可以做到这一点?或者也许是一个批处理文件?
我也有卡巴斯基安全软件,但在其中找不到这样的选项。
我想比较两个文件夹,严格来说是文件名。(不是文件内容)。我在 Windows 10 上,想使用命令行工具。
这是可以解释问题的场景。
Folders
-------
source source2
- file_1 - file_1
- file_2 - file_2
- file_3 - file_4
- file_5 - file_5
- file_6 - file_7
Output should be:
-----------------
Source -> Missing files file_4
Source2 -> Missing files file_3
Run Code Online (Sandbox Code Playgroud)
我做了一些研究,有很多diff工具,但我对比较文件内容不感兴趣。我想要的只是比较两个文件夹并输出两个文件夹中缺少哪些文件(与另一个文件夹相比)。
我不喜欢使用 Powershell。
谢谢你。
batch-file ×10
windows ×5
command-line ×4
windows-10 ×4
powershell ×2
bash ×1
cmd.exe ×1
networking ×1
robocopy ×1
vbscript ×1
windows-7 ×1
xcopy ×1