标签: windows-scripting

在VBA中获取当前内存配置的最佳方法

我试图获得当前用户的RAM配置.我想用VBA来查看它,然后将它存储在一个表中.我需要芯片的数量以及每个芯片上的RAM量.这可以使用VBA以编程方式查找吗?我需要使用Windows脚本宿主吗?

hardware configuration vba windows-scripting

3
推荐指数
1
解决办法
1730
查看次数

.bat If Then Statement

我需要帮助编写批处理脚本

if file newfile.txt exists
then  del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
Run Code Online (Sandbox Code Playgroud)

batch-file windows-scripting

3
推荐指数
2
解决办法
4万
查看次数

Windows Server重新启动后运行批处理脚本

我正在尝试运行脚本以在Windows重新启动后启动某些服务。

我尝试了一种方法:在shell:startup文件夹中复制批处理脚本的快捷方式。最终将自动启动脚本,但必须有人登录到系统。

我正在考虑在服务器重新启动后无需登录服务器即可运行脚本的可能方法。

任何帮助将不胜感激。

windows batch-file windows-scripting windows-server-2008 windows-server-2012-r2

3
推荐指数
1
解决办法
4994
查看次数

Visual Studio Build Agent脚本安装

我正在尝试自动化VSTS Build Agent安装程序(https://www.visualstudio.com/en-us/docs/build/actions/agents/v2-windows)。

但是,此过程中有一个交互式步骤。这是一个cmd脚本文件,需要用户输入。我尝试使用设置生成一个TXT文件,然后运行脚本以读取该文件中的输入:

.\config < settings.txt
Run Code Online (Sandbox Code Playgroud)

但这没有用。我收到该消息:

Enter server URL > Enter authentication type (press enter for PAT) > Enter perso
nal access token > Cannot read keys when either application does not have a cons
ole or when console input has been redirected. Try Console.Read.
Run Code Online (Sandbox Code Playgroud)

是否可以通过脚本设置构建代理?有什么方法config.cmd可以完美地“重定向”控制台输入吗?

powershell windows-scripting azure-pipelines

3
推荐指数
1
解决办法
902
查看次数

使用 Python 3.5 执行 PowerShell 命令

我一直在研究一个需要通过 PowerShell 命令行运行 Python 脚本的问题。脚本应该将命令传递到命令行并保存输出。但是,我遇到了无法识别某些命令行参数的问题。

import subprocess
try:
    output = subprocess.check_output\
    (["Write-Output 'Hello world'"], shell=True)
    # (["dir"], shell=True)
except subprocess.CalledProcessError as e:
    print(e.output)
    print('^Error Output^')
Run Code Online (Sandbox Code Playgroud)

如果我将当前命令与命令一起使用check_output,我会收到一条错误消息,指出:

'"Write-Output 'Hello world'"' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

如果我只使用该"dir"行,脚本运行得很好。我在这里不同意为什么会发生这种情况。这不是我正在运行的确切脚本,但它在我的机器上产生了同样的问题。如果我只是在命令行中输入问题命令,它会"Hello world"按预期输出到新行。

任何有关为什么会发生这种情况的见解将不胜感激。如果相关,我不想使用任何类型的管理员权限解决方法。

python powershell windows-scripting

3
推荐指数
1
解决办法
1808
查看次数

&符号作为FOR/F语句中的delim

我试图在Windows命令行脚本的FOR/F语句中转义&符号,如下所示:

FOR /F "tokens=1,2 delims=^&" %%A IN ("%Var%") DO (...
Run Code Online (Sandbox Code Playgroud)

运行脚本的结果仍然是:

 & was unexpected at this time
Run Code Online (Sandbox Code Playgroud)

使用&作为分隔符的正确方法是什么?或者它应该被要解析的字符串中的其他东西替换?

windows for-loop cmd batch-file windows-scripting

2
推荐指数
1
解决办法
330
查看次数

在Windows命令中使用密码参数是否安全?

想象一下,我们有一个可以获取密码(或其他敏感信息)参数的程序或脚本:

> program.exe /password:secret
Run Code Online (Sandbox Code Playgroud)

对于Linux,最佳实践通常建议不要直接在命令行上指定密码,因为存在潜在的安全问题(密码可以出现在shell的历史文件和系统的进程表中):

$ ./program.sh --password 'secret' &
[1] 4152

$ cat /proc/4152/cmdline 
/bin/sh./program.sh--passwordsecret
Run Code Online (Sandbox Code Playgroud)

但是,在搜索时,我没有看到针对Windows的强烈建议.

在为Windows编写程序和脚本时,我们是否应该提供另一种方法来输入除命令行选项的参数之外的密码,以避免无意中泄露密码?

这个问题的答案表明,专用的密码输入提示可以防止肩膀冲浪,从而提高安全性.有没有其他方法可以在命令字符串中利用可见密码来证明编写备用输入方法,无论是在shell的上下文中还是在Windows管理进程的方式中?

从批处理文件或PowerShell脚本启动程序时,安全隐患是否会发生变化,该脚本将密码作为参数传递给程序?

$password = # prompt for password 
program.exe /password:$password
Run Code Online (Sandbox Code Playgroud)

编辑 - 我理解我们可以将这个问题误解为基于意见的问题,因为我提到"最佳实践"和"建议"来提供背景知识.但是,我寻求具体的证据来证明密码在命令参数中可能容易受到攻击,并且 - 如果这个假设是有效的 - 具体示例或描述安全备选方案的参考.

windows security shell powershell windows-scripting

2
推荐指数
2
解决办法
2283
查看次数

如何在启动应用程序之前运行Windows shell脚本?

有没有办法配置应用程序快捷方式,以便在启动应用程序之前运行Windows shell脚本?就我而言,我想在应用程序运行之前备份一些文件.

谢谢!

scripting shortcuts windows-scripting

1
推荐指数
1
解决办法
206
查看次数

DOS脚本按内容删除相同的文件

我有一个目录,包含我需要处理的数千个文本文件.其中一些文件是相同的,而其他文件是相同的,除了时间戳变化几秒/毫秒.我需要一些方法来自动删除相同的文件,只保留一个副本.

我想的是:

while there are files in the directory still
{
    get file                    // e.g., file0001

    while (file == file + 1)    // e.g., file0001 == file0002 using 'fc' command
    {
        delete file + 1
    }

    move file to another directory
}
Run Code Online (Sandbox Code Playgroud)

在Microsoft Windows Server 2003的DOS中,甚至可以这样吗?

scripting dos batch-file windows-scripting

1
推荐指数
1
解决办法
2435
查看次数

批处理 - 转义竖线的含义 | 等号前=

我目前正在努力理解Windows 批处理脚本介绍

SET /A errno=0
SET /A ERROR_SOMECOMMAND_NOT_FOUND=2

... 
... SET /A errno^|=%ERROR_SOMECOMMAND_NOT_FOUND%
Run Code Online (Sandbox Code Playgroud)

根据这个答案,抑扬^符是一个转义字符,所以我们以errno|=%ERROR_SOMECOMMAND_NOT_FOUND%. 但是这段代码在做什么呢?

在相应的文章中,作者指出这提供了将多个错误编号按位或组合在一起的灵活性

好的,但是我找不到任何关于批量按位运算的文章,上面有一行...

所以,请给我一点启发。

scripting scripting-language batch-file windows-scripting

1
推荐指数
1
解决办法
114
查看次数

FFmpeg:将任何视频转换为带有模糊侧边栏的方形 1:1 视频

与这个主题非常相似:

\n\n

FFmpeg:如何将带有黑边的垂直视频转换为背景边模糊的 16:9 视频

\n\n

我正在尝试为自己制作一个bat文件,以自动化我的Instagram视频创作。
\n我的想法是制作可变分辨率和可变长宽比的视频。我不想花时间在每个视频上只是为了让它适合。

\n\n

这就是我对该 bat 文件的目标:

\n\n
    \n
  • 必须输出方形视频
  • \n
  • 原始视频无论是什么都必须保持其原始宽高比
  • \n
  • 填充原始视频中的空白和方形纵横比必须用原始视频的方形和模糊版本来填充
  • \n
  • 或者,让我选择输出分辨率(为了节省编码时间,并且据我所知 Instagram 仅显示 600px\xc2\xb2 视频(?))
  • \n
\n\n

到目前为止,我设法获得仅适用于垂直或水平视频的结果,但不能同时适用于两者。或者最终原始视频被裁剪,这是我不想要的:我按照我想要的方式构图我的主题,并且我不想预先考虑 FFmpeg 编码可以进行的额外裁剪来构图它们。

\n\n

到目前为止,这是我的脚本:

\n\n
echo off\n:again\n\nffmpeg.exe -i "%~1" ^\n    -c:v libx264 -crf 23 -filter_complex "[0:v]scale=600*2:600*2,boxblur=luma_radius=min(h\\,w)/20:luma_power=1:chroma_radius=min(cw\\,ch)/20:chroma_power=1[bg];[0:v]scale=600:-1[ov];[bg][ov]overlay=(W-w)/2:(H-h)/2,crop=w=600:h=600"  -profile:v baseline -level 3.0 -pix_fmt yuv420p -preset faster -tune fastdecode ^\n    -c:a aac -ac 2 -b:a 128k ^\n    -movflags faststart ^\n    "%~p1%~n1_Instagramized.mp4" -y\n\nif NOT ["%errorlevel%"]==["0"] pause\nshift\nif "%~1" == "" goto:eof\ngoto:again\n
Run Code Online (Sandbox Code Playgroud)\n\n

编辑:

\n\n

感谢@Gyan 我得到了解决方案 …

video command-line ffmpeg windows-scripting

1
推荐指数
1
解决办法
2461
查看次数

过滤文件内容以从PowerShell中的另一个文件中排除所有具有匹配字符串的行

我需要过滤变量的内容,以将所有具有匹配字符串的行从SubnetExceptions.txt文件中排除,作为过滤器,就像一条grep -v命令一样。

$Value为了获得所需的格式,该变量经过了很多处理。

该代码的工作部分如下:

$Value=netsh dhcp server show mibinfo | findstr "Subnet Addresses"
$Value=$Value -replace "Subnet","% `n Subnet"
$Value=$Value -replace "No. of Addresses in use","AddressesInUse"
$Value=$Value -replace "No. of free Addresses","AddressesFree"
$Value=$Value -replace '^.|.$', ' '
$Value=$Value -replace '    ', ""
$Value=$Value -replace '  ', " "
$Value= -join $Value 
$Value=$Value -replace '\n', ''
$Value=$Value -replace "% ", "`n"
$Value=$Value -replace ' = ', '='
Run Code Online (Sandbox Code Playgroud)

ps1的前11行$Value从以下命令处理该命令的输出():

    子网= 10.1.8.0。
        正在使用的地址数= 11。
        免费地址数= 18。
    子网= …

powershell scripting replace windows-scripting

0
推荐指数
1
解决办法
1002
查看次数