出于某种原因,看起来我不能将字符串数组作为参数传递给scriptblock.我在这做错了什么?
我的脚本是从另一个脚本调用的:
param(
[parameter(Mandatory=$true)]
[string[]]$myarr
)
foreach ($elem in $myarr){
$elem
}
Run Code Online (Sandbox Code Playgroud)
我把它从另一个脚本称为
$myarr = @("111", "222")
start-job -filepath myscript.ps1 -arg $myarr
Run Code Online (Sandbox Code Playgroud)
我只得到了数组中的第一项 - "111".
我在assets文件夹中有几个html文件.我该如何本地化它们?我唯一的选择是根据区域设置放一些硬编码来选择正确的文件?
我正在做这篇文章中描述的将保存文件保存在安全文件中的内容,因此我们的自动化过程可以使用它通过Invoke-command运行远程PS脚本:http: //blogs.technet.com/b/robcost/archive/2008 /05/01/powershell-tip-storing-and-using-password-credentials.aspx
当我在我的帐户下运行时,这很有效 - 密码从加密文件中读取,传递给Invoke-command,一切都很好.
今天,当我的脚本准备好它的黄金时间时,我试图在自动进程将使用的Windows帐户下运行它,并在我的脚本尝试从文件中读取安全密码时遇到此错误:
ConvertTo-SecureString : Key not valid for use in specified state.
At \\remoted\script.ps1:210 char:87
+ $password = get-content $PathToFolderWithCredentials\pass.txt | convertto-sec
urestring <<<<
+ CategoryInfo : InvalidArgument: (:) [ConvertTo-SecureString], C
ryptographicException
+ FullyQualifiedErrorId : ImportSecureString_InvalidArgument_Cryptographic
Error,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand
Run Code Online (Sandbox Code Playgroud)
要求我的同事在他的帐户下运行,他也得到了同样的错误.
这是我用来保存凭据的代码:
$PathToFolderWithCredentials = "\\path\removed"
write-host "Enter login as domain\login:"
read-host | out-file $PathToFolderWithCredentials\login.txt
write-host "Enter password:"
read-host -assecurestring | convertfrom-securestring | out-file $PathToFolderWithCredentials\pass.txt
write-host "*** Credentials have been saved to $pathtofolder ***"
Run Code Online (Sandbox Code Playgroud)
这是脚本中的代码,由自动进程运行以读取它们以在Invoke-command中使用:
$login= get-content …Run Code Online (Sandbox Code Playgroud) 我感到很困惑...
SoundPool.play(int soundID,float leftVolume,float rightVolume,int priority,int loop,float rate)
这里的体积是0.0到1.0
我见过的教程建议将流量计算为:
AudioManager mgr = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
int streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
streamVolume = streamVolume / AudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, 0, 1f);
Run Code Online (Sandbox Code Playgroud)
这是有道理的.
我假设此卷将覆盖用户在手机中设置的全局媒体卷,我可以通过更改soundPool中的流量来独立更改我的应用的音量.
但实际上它就像乘数一样 - 如果我在soundpool中设置0.5音量,实际音量将总是全局音量的一半.很容易重现:
有人可以解释为什么它会这样吗?传递给SoundPool.play方法的音量真的是全球音量的乘数吗?
我看到很多例子如何写这样的String对象:
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
Run Code Online (Sandbox Code Playgroud)
但不是如何从内部应用程序文件中读取它们.大多数示例假设特定的字符串长度来计算字节缓冲区,但我不知道长度是多少.有一个简单的方法吗?我的应用程序最多可以为文件写入50-100个字符串
是否可以从 AWS Glue python 作业执行任意 SQL 命令,例如 ALTER TABLE?我知道我可以用它从表中读取数据,但是有没有办法执行其他数据库特定的命令?
我需要将数据提取到目标数据库中,然后立即运行一些 ALTER 命令。
在PowerShell中是否有一种简单的方法可以同时将字符串输出到变量和控制台?
我想将我的脚本输出捕获到一个变量,以便我可以在脚本的最后分析它,将其保存到日志文件,并通过电子邮件发送给操作员.
我的意图是有一个变量$ output并向其添加任何输出字符串,并立即输出到控制台
$output="Process started"
$output=+"Doing step 1"
"Doing step 1"
$output=+"Doing step 2"
"Doing step 2"
Run Code Online (Sandbox Code Playgroud)
所以最后我可以将$ output保存到日志文件中,通过电子邮件发送并解析它.
我玩tee-object可能会为此目的而工作但不幸的是它会重写我的$ output变量而不是附加一个字符串.
更新 这是我决定采用的最终解决方案 - 感谢manojlds!
$script:output = ""
filter mylog {
$script:output+= $_+"`n"
return $_
}
"doing step {0}" -f 1 | mylog
"doing step {0}" -f 2 | mylog
"doing step {0}" -f 3 | mylog
#in the end of the script
$script:output
Run Code Online (Sandbox Code Playgroud) 我使用非常简单的代码来显示存储为drawables的图像库.所有图像的尺寸均小于200kb,分辨率为1024x576像素.
我的代码在我测试的4个设备上以及我的大多数用户中运行良好.但是他们中的一些人一直在着名的vm预算记忆问题.
他是我的代码:
在我的活动的onCreate()方法中:
// set Factory for Image Switcher
imageSwitcher = (ImageSwitcher) findViewById(R.id.ImageSwitcher);
imageSwitcher.setFactory(new MyImageSwitcherFactory());
Run Code Online (Sandbox Code Playgroud)
工厂类:
private class MyImageSwitcherFactory implements ViewFactory {
public View makeView() {
ImageView imageView = new ImageView(Main.this);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
return imageView;
}
}
Run Code Online (Sandbox Code Playgroud)
和显示图像的代码:
try {
// this is internal image loaded from drawables
imageSwitcher.setImageResource(images.get(imageNumber - 1).imageResourceID);
} catch (Exception e) {
// no image will be shown
}
Run Code Online (Sandbox Code Playgroud)
在try/catch块中某些手机上出现错误(非常小的下载百分比)并且某些手机活动根本无法启动.
我读过有关回收位图和内存泄漏问题的内容,但我的活动是在单一模式下运行而不是在方向更改时重新创建,因此它始终是相同的活动.我也不直接使用位图.
我能以某种方式改进我的代码以摆脱这个错误吗?
第一种错误:
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at …Run Code Online (Sandbox Code Playgroud) 我在HIVE中有一个subselect视图 - 视图的目的是从源表中删除重复.
源表由source_system列分区.
CREATE VIEW myview AS
SELECT * FROM (
SELECT
*
,row_number() OVER (PARTITION BY source_system,key ORDER BY modification_date DESC) as seq_rn
FROM mytable
) t
WHERE seq_rn= 1
;
Run Code Online (Sandbox Code Playgroud)
问题是,如果我这样做
EXPLAIN DEPENDENCY SELECT * FROM myview WHERE source_system='AAA'
Run Code Online (Sandbox Code Playgroud)
我看到正在扫描所有分区,因此不会发生分区修剪.
有没有办法解决?
我使用resolveActivityInfo来确定我的应用程序是否设置为主启动器:
PackageManager pm = getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_HOME);
userHomePackage = intent.resolveActivityInfo(pm, 0).packageName;
userHomeActivityClass = intent.resolveActivityInfo(pm, 0).name;
currentHomeLauncherName = intent.resolveActivityInfo(pm, 0).loadLabel(pm).toString();
Run Code Online (Sandbox Code Playgroud)
它在模拟器和我手上的三个Android设备上运行良好.
最近我开始从我的用户那里收到错误报告,错误日志显示resolveActivityInfo失败.这种情况只发生在Android 2.1更新1上运行的几部手机上,我可以看到.我已收到很多关于我的应用程序的积极评论和一些负面因为这个问题.
有什么建议可能是错的吗?
java.lang.NullPointerException
at android.os.Parcel.readException(Parcel.java:1224)
at android.os.Parcel.readException(Parcel.java:1206)
at android.content.pm.IPackageManager$Stub$Proxy.resolveIntent(IPackageManager.java:1418)
at android.app.ApplicationContext$ApplicationPackageManager.resolveActivity(ApplicationContext.java:2046)
at android.content.Intent.resolveActivityInfo(Intent.java:3790)
at com.myapp.myappname.Launcher.setAsHomeApplicationBeforeFroyo(Launcher.java:336)
Run Code Online (Sandbox Code Playgroud)
要么
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.myappname/com.myapp.myappname.Launcher}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2497)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2513)
at android.app.ActivityThread.access$2200(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1864)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4370)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.os.Parcel.readException(Parcel.java:1224) …Run Code Online (Sandbox Code Playgroud) android ×5
powershell ×3
arguments ×1
arrays ×1
aws-glue ×1
credentials ×1
file ×1
hadoop ×1
hive ×1
image ×1
localization ×1
memory ×1
parameters ×1
py4j ×1
pyspark ×1
resolve ×1
soundpool ×1
string ×1