标签: script

我想创建一个 AutoHotKey 脚本来等待一个窗口并向它发送一些按键,但默认情况下按键是重复的

我想要一个等待特定窗口的 AutoHotKey 脚本,然后将击键发送到该窗口。但是,由于等待是在循环中完成的,因此密钥会一次又一次地发送。

假设我想等待 Windows 计算器,然后向它发送“12345”。我的第一次尝试是:

#SingleInstance force
Loop
{
WinWaitActive, Calc
{
    Send, 12345
}
Run Code Online (Sandbox Code Playgroud)

这个脚本显然一遍又一遍地发送“12345”,因为我没有跳出循环。

如果我在 send 语句之后插入一个“break”,循环会终止,但整个脚本也会终止。

处理这个的标准模式是什么?

script autohotkey

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

脚本运行 sox 将多个单声道组合成立体声

我有一个装满.wav音频文件的文件夹。

有些是立体声,大多数是单声道拆分。

单声道分裂对都被命名foo bar track.L.wavfoo bar track.R.wav

我可以使用命令行工具sox将一对单声道组合成 1 个立体声轨道,如下所示:

sox -M track1.L.wav track1.R.wav track1.Stereo.wav
Run Code Online (Sandbox Code Playgroud)

其中前 2 个文件是单声道对,第三个是输出立体声文件。

这很棒,但我想要一个脚本,它会自动找到所有的单声道对并将它们组合成立体声文件。

即,我需要它来查找除扩展名.L..R.之前具有相同名称的所有文件,并sox在它们上运行,输出到具有相同名称但没有L/R后缀的新文件。

例如,如果我的文件夹包含这些文件:

track1.L.wav
track2.L.wav
track3.L.wav
track4.L.wav
track1.R.wav
track2.R.wav
track3.R.wav
track4.R.wav
track6.wav
track7.wav
Run Code Online (Sandbox Code Playgroud)

我需要运行这些命令:

sox -M track1.L.wav track1.R.wav track1.Stereo.wav
sox -M track2.L.wav track2.R.wav track2.Stereo.wav
sox -M track3.L.wav track3.R.wav track3.Stereo.wav
sox -M track4.L.wav track4.R.wav track4.Stereo.wav
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的位置:

for file in ./*.L.wav;
do 
    file2=`echo $file | sed 's_\(.*\).L.wav_\1.R.wav_'`;
    out=`echo $file …
Run Code Online (Sandbox Code Playgroud)

script command-line sox

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

每次从 OS X 登录和注销时如何执行脚本?

我想要的是将带有变量的 URL 发送到服务器,该服务器将根据某人登录和注销工作站的时间来跟踪他们何时出现。

我已经试过设置LoginHookcom.apple.loginwindow以“/Users/Username/Desktop/script.sh”。script.sh当我从终端自己执行它时工作,但它不从LoginHook.

该脚本执行以下内容,其中$USER应该是当前登录的用户名:

curl -kd "author=$USER&type=inout&message=in" https://some.server.com/timetrack
Run Code Online (Sandbox Code Playgroud)

script bash login osx-lion macos

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

如何在 telnet 会话中运行脚本?

我想使用 telnet 连接到远程主机,只是没有用户名/密码验证

telnet remotehost
Run Code Online (Sandbox Code Playgroud)

然后我需要输入一些命令进行初始化

然后我需要重复以下命令:

cmd argument
Run Code Online (Sandbox Code Playgroud)

参数是从本地文件中读取的,在这个文件中有很多行,每一行是一个参数,运行一个“cmd参数”后,远程主机会输出一些结果它可能会输出一行“OK”或输出很多行,其中之一是字符串“ERROR”,我需要根据结果做一些事情。

基本上,脚本是这样的:

initialization_cmd  #some initial comands
while read line
do    
  cmd $line
  #here the remote host will output results, how can I put the results into a variable?
  # here I want to judge the results, like
  if $results contain "OK";then
       echo $line >>good_result_log
  else
       echo $line >> bad_result_log
  fi     
done < local_file

 the good_result_log and bad_result_log are local files
Run Code Online (Sandbox Code Playgroud)

有可能吗?谢谢!

注意:我无法控制 B,我只能在 B 上运行初始 cmds 和 cmd $line

telnet script bash

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

附加到文件名的开头

我正在尝试使用批处理文件将 [Replay] 一词添加到文件夹中的所有 mp3 文件中,如下所示:

@echo off
for %a in (c:\folder\*.mp3) do ren %a [Replay]%a
Run Code Online (Sandbox Code Playgroud)

但它不会重命名文件。

我从谷歌搜索中尝试的所有示例都附加了该单词,但会覆盖文件名中的下一个字符,我只需要将该单词添加到开头,而无需运行字母。

有什么想法吗?

windows script batch rename

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

将文件分解为字符串,每个文件都基于第一个字母。巴什

好的,所以我有一个包含数千个字符串的文件。每个人都在自己的线上。我想制作一个脚本,允许我获取这个文件,调用它list.txt,并从每一行中获取项目,并根据第一个字母或数字将其放入单独的文件中。例如,假设文件的前几行是这样的:

cheese
pizza
pepperoni
lettuce
grahamCrackers
0-0Foods
chicken
lentils
1-2Items
Run Code Online (Sandbox Code Playgroud)

我需要把它分解成这些:

文件

cheese
chicken
Run Code Online (Sandbox Code Playgroud)

文件

grahamCrackers
Run Code Online (Sandbox Code Playgroud)

文件

lettuce
lentils
Run Code Online (Sandbox Code Playgroud)

文件

pizza
pepperoni
Run Code Online (Sandbox Code Playgroud)

0.txt

0-0Foods
Run Code Online (Sandbox Code Playgroud)

1.txt

1-2Items
Run Code Online (Sandbox Code Playgroud)

我想在 OS X 上用 BASH 完成这个。谢谢。

哦,如果有帮助的话。每行上的项目永远不会有空格,它们将始终包含为一个单词。EG(从不鸡汤,而是鸡汤)

script bash parsing

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

在 /etc/passwd 文件中用 /bin/false 替换 /bin/bash

我正在编写一个程序来禁用系统中的用户,我想替换/bin/bash/bin/false.

例子

xxx:x:1:22:xx:/export/home/xx:**/bin/bash**
Run Code Online (Sandbox Code Playgroud)

替换为

xxx:x:1:22:xx:/export/home/xx:**/bin/false**
Run Code Online (Sandbox Code Playgroud)

我想使用 bash 脚本。

我知道一种方法是使用sed. 但我不擅长正则表达式。

任何人都可以帮忙吗?

script bash solaris

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

如何在 ubuntu 启动时启动交互式脚本?

基于 Ubuntu core 12.04,我准备了一张可启动的 DVD。启动后(仅限控制台),我可以以用户身份登录并启动用于安装嵌入式设备的脚本:

sudo install_script
Run Code Online (Sandbox Code Playgroud)

为了在启动时执行这个脚本,我/etc/rc.local在 DVD 上的根文件系统的映像中添加了以下内容:

/bin/bash -ic install_script
Run Code Online (Sandbox Code Playgroud)

由于这个脚本是无条件执行的,我想给用户一些机会绕过安装并进入登录提示。为此,我想read在 install_script 中使用。不幸的是,从/etc/rc.local. (登录后从 shell 启动的相同脚本没有问题)。

如何在启动时获得一些用户输入?

(一些想法:

  • 也许,我可以以某种方式检测并将 tty 连接到read或连接到脚本?我试过/bin/bash -ic install_script </dev/console无济于事。
  • 也许,有更合适的选项 to/bin/bash或 to read
  • 也许,我可以root通过.bashrc调用sudo install_script(避免检查 sudo 的密码?)启动到某个用户的单个 shell(也许,无需登录?)?
  • 也许,存在一个更好的地方来调用脚本?
  • 我不想将交互(更早发生)和 install_script(例如,通过 isolinux 提供不同的引导选项并/proc/cmdline在脚本中检查)分开,原因如下:在询问用户之前,我想检查系统并概述安装过程中究竟会发生什么。在引导过程的早期阶段,可能还不容易获得用于检查系统的必要信息。

)

boot script tty interactive ubuntu

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

如何将脚本添加到路径?

我将常用的 powershell 脚本存储在%USERPROFILE%\Bin. 我创建了一个USER_BIN环境变量,我PATH通过Control Panel > System and Security > System > Advanced system setting > Environment Variables.

当我在cmd 或 powershell 提示符中输入存储在Bin, 即中的脚本的名称时,my-script.ps1我收到消息my-script.ps1 : The term 'my-script.ps1' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

如果我提供完整路径,即C:\Users\Ari\Bin\my-script.ps1脚本工作正常。

script powershell path windows-8

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

使用脚本在 FileZilla 中自动上传文件

考虑:

D:\Program Files\FileZilla FTP Client\filezilla.exe -c 0/GG/DG/ -a "K:\YY\XXXXX\AAAA\BB\idS.txt"
Run Code Online (Sandbox Code Playgroud)

此代码不起作用,因为它说:

“找不到路径” K:\YY\XXXXX\AAAA\BB\idS.txt

然而

D:\Program Files\FileZilla FTP Client\filezilla.exe -c 0/GG/DG/ -a "K:\YY\XXXXX\AAAA\BB"
Run Code Online (Sandbox Code Playgroud)

只需连接到我希望的 FTP 站点,无需传输任何文件。

为什么它不起作用?

script upload filezilla

5
推荐指数
2
解决办法
12万
查看次数