我已经搜索了这个,但我想对使用路径没有很大的需求.所以我正在尝试两个写一个bash脚本来使用tta和cue文件转换我的音乐集.我的目录结构如下:tta文件的/Volumes/External/Music/Just/Some/Dirs/Album.tta和cue表的/Volumes/External/Cuesheets/Just/Some/Dirs/Album.cue.
我目前的方法是将/ Volumes/External设置为"root_dir",并将album.tta文件的相对路径设置为$ ROOT_DIR/Music(在这种情况下,这将是Just/Some/Dirs/Album.tta),然后添加此结果为$ ROOT_DIR/Cuesheets并将后缀从.tta更改为.cue.
我目前的问题是,dirname按原样返回路径,这意味着/ Volumes/External/Music/Just/Some/Dirs不会转换为./Just/Some/Dirs/当我当前文件夹为$ ROOT_DIR/Music时给出了绝对路径.
添加://如果有人遇到类似的问题,这是脚本:
#!/bin/bash
ROOT_DIR=/Volumes/External
BASE="$1"
if [ ! -f "$BASE" ]
then
echo "Not a file"
exit 1
fi
if [ -n "$2" ]
then
OUTPUT_DIR="$HOME/tmp"
else
OUTPUT_DIR="$2"
fi
mkfdir -p "$OUTPUT_DIR" || exit 1
BASE=${BASE#"$ROOT_DIR/Music/"}
BASE=${BASE%.*}
TTA_FILE="$ROOT_DIR/Music/$BASE.tta"
CUE_FILE="$ROOT_DIR/Cuesheets/$BASE.cue"
shntool split -f "${CUE_FILE}" -o aiff -t "%n %t" -d "${OUTPUT_DIR}" "${TTA_FILE}"
exit 0
Run Code Online (Sandbox Code Playgroud) 我正在设计一个小型库,它应该有助于登录到不同的目的地(文件、数据库等)。但是,我不确定如果出现问题(例如无法写入文件)是否应该抛出异常?
\n\n如果我抛出异常(与日志记录相关),使用我的库的应用程序开发人员可以清楚地看到日志记录没有按预期发生。另一方面,它可能是问题的另一个来源。
\n\n如果我抑制异常并且只是悄悄地不记录日志,那么开发人员可能会错过重要信息(例如无法访问数据库)。
\n\n对于如何解决这个问题,是否有任何建议、一般准则(如果是 a 那么 b 等)?
\n\n据我到目前为止所读到的:
\n\n\n\n\n\n\n\xe2\x9c\x97 没有可以根据某些选项抛出或不抛出的公共成员。
\n
因此,选择是否抛出异常将违反这些准则,但如果不确定异常的可能性有多大,它们不会给出有关抛出异常的声明。
\n\n我还在这个问题/答案中读到,我不应该捕获异常,因为我无法对它们做任何有意义的事情,但问题是针对企业级系统,而我的问题是在更一般的层面上提出的。
\n是否有任何正当理由不将所有变量放在引号中的shell脚本中?("不知道更好"在我看来不是正当理由.)
一般来说,引用变量可以确保它们被视为一个变量,如果它们包含空格或其他特殊字符.那么为什么有人会采用"不安全"的方式而不引用变量?
我目前正在尝试编写16位实模式启动代码,该代码打印一个字母,然后从软盘加载第二个段并跳转到该段,然后再打印一个字母。
但是,我对“从云端硬盘读取扇区”呼叫的工作方式有些困惑。到目前为止,这是我的代码:
[BITS 16]
org 0x7B00
start:
mov ax, 0xB800 ; Video buffer
mov es, ax ; Copy address of video buffer to extra segment
mov byte [es:0], 'A' ; Move character A to first address
mov byte [es:1], 0x17 ; Format for blue background, white foreground
mov ah, 0x02 ; Read sectors from drive
mov al, 1 ; Read 1 sector
mov ch, 0 ; Cylinder 0
mov cl, 0 ; Sector 0
mov dh, 0 ; Head 0 …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试用C#编写一个带有两个屏幕缓冲区的控制台应用程序,这些缓冲区应该来回交换(很像现代GPU上的VSync).由于System.Console该类没有提供切换缓冲区的方法,我不得不从kernel32.dll P/Invoke几个方法.
这是我目前的代码,大大简化了:
static void Main(string[] args)
{
IntPtr oldBuffer = GetStdHandle(-11); //Gets the handle for the default console buffer
IntPtr newBuffer = CreateConsoleScreenBuffer(0, 0x00000001, IntPtr.Zero, 1, 0); //Creates a new console buffer
/* Write data to newBuffer */
SetConsoleActiveScreenBuffer(newBuffer);
}
Run Code Online (Sandbox Code Playgroud)
发生了以下事情:
newBufferoldBuffer而不是时newBuffer,数据立即出现.因此,我写入缓冲区的方式应该是正确的.SetConsoleActiveScreenBuffer(newBuffer),错误代码现在是6,这意味着句柄无效.这很奇怪,因为句柄不是-1,文档描述为无效.我应该注意到,我很少直接使用Win32 API,并且对常见的Win32相关问题知之甚少.我会很感激任何帮助.
我试图通过JMETER JSON Extractor从JSON文档中提取多个值,使用以下表达式:$..VoidTransactionReferenceNumber;$..CILAmount
但是,我无法获得所需的响应,这是VoidTransactionReferenceNumber和CLIAmount.
JSON文档是:
{
"VoidTransactionReferenceNumber": "23456",
"TransactionDTM": "2017-11-16T10:09:16.343Z",
"CardBalance": 2350,
"CardSequenceNumber": 0,
"CILAmount": 0,
"AutoloadAmount": 0,
"CardBlockState": false,
"VoidedAmount": 570,
"SalesReferenceNumber": "2051609371",
"VoidSalesReferenceNumber": "2051609371",
"CardNumber": "3085220112345678"
}
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试编写我的第一个CoreData-Application,它需要访问应用程序委托以获取某些内容.所以我试图在我的委托中创建一个小变量,我想阅读以确定我是否得到了正确的委托.但是,似乎我无法访问我的代理并创建一个新的代理.这是我的代码:
//delegate.h
#import <Cocoa/Cocoa.h>
@interface delegate_TestAppDelegate : NSObject <NSApplicationDelegate> {
@private
NSWindow *window;
NSString * myString;
}
@property (assign) IBOutlet NSWindow *window;
@property (retain) NSString * myString;
@end
//delegate.m
#import "delegate_TestAppDelegate.h"
@implementation delegate_TestAppDelegate
@synthesize window, myString;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
self.myString = @"Hello, World";
NSLog(@"In delegate: %@", self.myString);
}
@end
//MyClass.h
#import <Foundation/Foundation.h>
#import "delegate_TestAppDelegate.h"
@interface MyClass : NSObject {
@private
delegate_TestAppDelegate * del;
}
- (IBAction)click:(id)sender;
@end
//MyClass.m
#import "MyClass.h"
@implementation MyClass
- (id)init
{
self = [super init]; …Run Code Online (Sandbox Code Playgroud) 我试图使用Slim框架从PUT请求中检索参数.从POST主体解析参数时,我可以简单地$request->post('param')用来检索param中的值.但是,当我使用时$request->put('param'),我总是收到null.
我的PUT身体是这样形成的:param=value&otherparam=othervalue&foo=bar......
PS:我已经看过这个问题,但答案没有使用put()-Method.
我有列表继承的问题.它看起来像具有更多指定成员的通用List无法转换为具有其基本成员的列表.看这个:
class A
{
public int aValue {get; set;}
}
class B : A
{
public int anotherValue {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
你现在可能期望a List<B>也是一个,List<A>但事实并非如此.
List<A> myList = new List<B>()不可能.甚至List<A> myList = (List<A>)new List<B>()在面向对象编程3年后,我是否遗漏了一些基本概念?