我想要一个等待特定窗口的 AutoHotKey 脚本,然后将击键发送到该窗口。但是,由于等待是在循环中完成的,因此密钥会一次又一次地发送。
假设我想等待 Windows 计算器,然后向它发送“12345”。我的第一次尝试是:
#SingleInstance force
Loop
{
WinWaitActive, Calc
{
Send, 12345
}
Run Code Online (Sandbox Code Playgroud)
这个脚本显然一遍又一遍地发送“12345”,因为我没有跳出循环。
如果我在 send 语句之后插入一个“break”,循环会终止,但整个脚本也会终止。
处理这个的标准模式是什么?
我有一个装满.wav音频文件的文件夹。
有些是立体声,大多数是单声道拆分。
单声道分裂对都被命名foo bar track.L.wav和foo 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) 我想要的是将带有变量的 URL 发送到服务器,该服务器将根据某人登录和注销工作站的时间来跟踪他们何时出现。
我已经试过设置LoginHook在com.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) 我想使用 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
我正在尝试使用批处理文件将 [Replay] 一词添加到文件夹中的所有 mp3 文件中,如下所示:
@echo off
for %a in (c:\folder\*.mp3) do ren %a [Replay]%a
Run Code Online (Sandbox Code Playgroud)
但它不会重命名文件。
我从谷歌搜索中尝试的所有示例都附加了该单词,但会覆盖文件名中的下一个字符,我只需要将该单词添加到开头,而无需运行字母。
有什么想法吗?
好的,所以我有一个包含数千个字符串的文件。每个人都在自己的线上。我想制作一个脚本,允许我获取这个文件,调用它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-0Foods
Run Code Online (Sandbox Code Playgroud)
1-2Items
Run Code Online (Sandbox Code Playgroud)
我想在 OS X 上用 BASH 完成这个。谢谢。
哦,如果有帮助的话。每行上的项目永远不会有空格,它们将始终包含为一个单词。EG(从不鸡汤,而是鸡汤)
我正在编写一个程序来禁用系统中的用户,我想替换/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. 但我不擅长正则表达式。
任何人都可以帮忙吗?
基于 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 启动的相同脚本没有问题)。
如何在启动时获得一些用户输入?
(一些想法:
read或连接到脚本?我试过/bin/bash -ic install_script </dev/console无济于事。/bin/bash或 to read?root通过.bashrc调用sudo install_script(避免检查 sudo 的密码?)启动到某个用户的单个 shell(也许,无需登录?)?/proc/cmdline在脚本中检查)分开,原因如下:在询问用户之前,我想检查系统并概述安装过程中究竟会发生什么。在引导过程的早期阶段,可能还不容易获得用于检查系统的必要信息。)
我将常用的 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脚本工作正常。
考虑:
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 站点,无需传输任何文件。
为什么它不起作用?